[med-svn] [SCM] emboss branch, master, updated. debian/6.3.1-6-30-g653784d

Andreas Tille tille at debian.org
Tue Jun 19 12:02:53 UTC 2012


The following commit has been merged in the master branch:
commit 45e0ccd29d19dba423b6093e1cbc3f45c3b72c6a
Author: Andreas Tille <tille at debian.org>
Date:   Tue Jun 19 11:52:10 2012 +0200

    General updates: Standards-Version; source/format 3.0 (quilt); remove article from short description; updated patches using quilt push; quilt refresh

diff --git a/debian/changelog b/debian/changelog
index eb735a6..0d96beb 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -10,6 +10,12 @@ emboss (6.4.0-1) UNRELEASED; urgency=low
   * debian/rules:
      - Make sure every binary package has a changelog file
      - enable hardening
+  * debian/control:
+     - remove article from description
+     - Standards-Version: 3.9.3 (no changes needed)
+  * debian/source/format: 3.0 (quilt)
+  * debian/{control,rules}: No point to explicitely mention quilt when
+    using debian/source format 3.0 (quilt)
 
  -- Charles Plessy <plessy at debian.org>  Wed, 20 Jul 2011 13:22:15 +0900
 
diff --git a/debian/control b/debian/control
index b5eca32..e0cc851 100644
--- a/debian/control
+++ b/debian/control
@@ -3,14 +3,16 @@ Section: science
 Priority: optional
 Maintainer: Debian Med Packaging Team <debian-med-packaging at lists.alioth.debian.org>
 DM-Upload-Allowed: yes
-Uploaders: Charles Plessy <plessy at debian.org>, Nelson A. de Oliveira <naoliv at debian.org>
-Build-Depends: debhelper (>= 9), quilt, libx11-dev, x11proto-core-dev, libgdchart-gd2-xpm-dev, zlib1g-dev, libpng-dev, libexpat1-dev, libhpdf-dev, libmysqlclient-dev, libpq-dev, antiword, sharutils, autotools-dev, tcsh | csh | c-shell,
+Uploaders: Charles Plessy <plessy at debian.org>,
+ Nelson A. de Oliveira <naoliv at debian.org>,
+ Andreas Tille <tille at debian.org>
+Build-Depends: debhelper (>= 9), libx11-dev, x11proto-core-dev, libgdchart-gd2-xpm-dev, zlib1g-dev, libpng-dev, libexpat1-dev, libhpdf-dev, libmysqlclient-dev, libpq-dev, antiword, sharutils, autotools-dev, tcsh | csh | c-shell,
 # Needed until the following is solved: https://sourceforge.net/tracker/?func=detail&aid=3033326&group_id=93650&atid=605031 
  default-jdk
 #Build-Depends-Indep: default-jdk
 Vcs-Browser: http://git.debian.org/?p=debian-med/emboss.git
 Vcs-Git: git://git.debian.org/git/debian-med/emboss.git
-Standards-Version: 3.9.2
+Standards-Version: 3.9.3
 Homepage: http://emboss.sourceforge.net
 
 Package: emboss
@@ -18,7 +20,7 @@ Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends}, emboss-lib (= ${binary:Version}), emboss-data (= ${source:Version})
 Recommends: primer3, dialign
 Suggests: emboss-doc, emboss-test, embassy, clustalw
-Description: the european molecular biology open software suite
+Description: european molecular biology open software suite
  EMBOSS is a free Open Source software analysis package specially developed for
  the needs of the molecular biology (e.g. EMBnet) user community. The software
  automatically copes with data in a variety of formats and even allows
diff --git a/debian/patches/official-upstream-patch.patch b/debian/patches/official-upstream-patch.patch
index 47154dd..71f9945 100644
--- a/debian/patches/official-upstream-patch.patch
+++ b/debian/patches/official-upstream-patch.patch
@@ -164,7235 +164,5763 @@ Description: Official upstream patch.
   	     for data resource internals. Without -debug there was no problem.
 Origin: ftp://emboss.open-bio.org/pub/EMBOSS/fixes/patches/patch-1-21.gz
 Forwarded: not-needed
-diff -c -N --recursive -a EMBOSS-6.4.0old/ajax/ajaxdb/ajtextdb.c EMBOSS-6.4.0/ajax/ajaxdb/ajtextdb.c
-*** EMBOSS-6.4.0old/ajax/ajaxdb/ajtextdb.c	2011-07-06 17:09:36.000000000 +0100
---- EMBOSS-6.4.0/ajax/ajaxdb/ajtextdb.c	2011-09-05 12:23:43.000000000 +0100
-***************
-*** 2580,2588 ****
-      {
-          field = ajListIterGet(iter);
-  
-!         if(!nfields)
-!             ajStrAppendK(&textin->Filename, '+');
-!         else
-          {
-              switch(field->Link)
-              {
---- 2580,2586 ----
-      {
-          field = ajListIterGet(iter);
-  
-!         if(nfields)
-          {
-              switch(field->Link)
-              {
-***************
-*** 2684,2692 ****
-      {
-          field = ajListIterGet(iter);
-  
-!         if(!nfields)
-!             ajStrAppendK(&textin->Filename, '+');
-!         else
-          {
-              switch(field->Link)
-              {
---- 2682,2688 ----
-      {
-          field = ajListIterGet(iter);
-  
-!         if(nfields)
-          {
-              switch(field->Link)
-              {
-diff -c -N --recursive -a EMBOSS-6.4.0old/ajax/core/ajarch.h EMBOSS-6.4.0/ajax/core/ajarch.h
-*** EMBOSS-6.4.0old/ajax/core/ajarch.h	2011-06-08 11:35:28.000000000 +0100
---- EMBOSS-6.4.0/ajax/core/ajarch.h	2011-09-05 12:23:43.000000000 +0100
-***************
-*** 137,143 ****
-  
-  #ifdef WIN32
-  typedef int ajint;
-! typedef long ajlong;       /* May need to make this long long. */
-  typedef unsigned int ajuint;
-  typedef short ajshort;
-  typedef unsigned short ajushort;
---- 137,143 ----
-  
-  #ifdef WIN32
-  typedef int ajint;
-! typedef long long ajlong;
-  typedef unsigned int ajuint;
-  typedef short ajshort;
-  typedef unsigned short ajushort;
-***************
-*** 159,162 ****
-  AJ_END_DECLS
-  
-  #endif
-- 
---- 159,161 ----
-diff -c -N --recursive -a EMBOSS-6.4.0old/ajax/core/ajfeatread.c EMBOSS-6.4.0/ajax/core/ajfeatread.c
-*** EMBOSS-6.4.0old/ajax/core/ajfeatread.c	2011-07-07 17:37:21.000000000 +0100
---- EMBOSS-6.4.0/ajax/core/ajfeatread.c	2011-09-05 12:23:43.000000000 +0100
-***************
-*** 3035,3041 ****
-      AjPStr  TvString  = NULL;
-      AjPStr  tmptag      = NULL;
-      AjBool  grpset      = ajFalse;
-!     
-      /*ajDebug("featGff3oldProcessTagval '%S'\n",
-        groupfield); */
-      
---- 3035,3042 ----
-      AjPStr  TvString  = NULL;
-      AjPStr  tmptag      = NULL;
-      AjBool  grpset      = ajFalse;
-!     AjBool escapedquote = ajFalse;
-! 
-      /*ajDebug("featGff3oldProcessTagval '%S'\n",
-        groupfield); */
-      
-***************
-*** 3050,3061 ****
---- 3051,3069 ----
-       */
-      
-      ajStrAssignS(&TvString, groupfield);
-+     if(ajStrFindC(TvString, "\\\"") >= 0)
-+     {
-+         escapedquote = ajTrue;
-+         ajStrExchangeCC(&TvString, "\\\"", "\001");
-+     }
-+ 
-      while(ajStrGetLen(TvString))
-      {
-  	if(ajRegExec(Gff3oldRegexTvTagval, TvString))
-  	{
-  	    ajRegSubI(Gff3oldRegexTvTagval, 1, &tmptag);
-  	    ajRegSubI(Gff3oldRegexTvTagval, 2, &featinValTmp);
-+                 
-  	    ajStrTrimWhite(&featinValTmp);
-  	    /*ajDebug("Gff3Tv '%S' '%S'\n", tmptag, featinValTmp);*/
-  	    ajRegPost(Gff3oldRegexTvTagval, &TvString);
-***************
-*** 3076,3081 ****
---- 3084,3091 ----
-  		featFlagSet(gf, featinValTmp);
-  	    else
-  	    {
-+                 if(escapedquote)
-+                     ajStrExchangeCC(&featinValTmp, "\001", "\"");
-  		/*ajDebug("GFF3 before QuoteStrip: '%S'\n", featinValTmp);*/
-  		ajStrQuoteStrip(&featinValTmp);
-  		/*ajDebug(" GFF3 after QuoteStrip: '%S'\n", featinValTmp);*/
-***************
-*** 5896,5903 ****
-      Gff3Regexdirective = ajRegCompC("^##(.*)");
-      Gff3Regexcomment   = ajRegCompC("^#(.*)");
-      Gff3RegexTvTagval  = ajRegCompC(" *([^ =]+)[ =]([^;]+)*(;|$)"); /* "tag name */
-!     Gff3oldRegexTvTagval  = ajRegCompC(" *([^ =]+)[ =]((\"(\\.|[^\\\"])*\"|"
-! 			 	   "[^;]+)*)(;|$)"); /* "tag name */
-  
-      FeatInitGff3 = ajTrue;
-  
---- 5906,5913 ----
-      Gff3Regexdirective = ajRegCompC("^##(.*)");
-      Gff3Regexcomment   = ajRegCompC("^#(.*)");
-      Gff3RegexTvTagval  = ajRegCompC(" *([^ =]+)[ =]([^;]+)*(;|$)"); /* "tag name */
-!     Gff3oldRegexTvTagval  = ajRegCompC(" *([^ =]+)[ =](\"[^\"]*\"|"
-! 			 	   "[^;]+)(;|$)"); /* "tag name */
-  
-      FeatInitGff3 = ajTrue;
-  
-diff -c -N --recursive -a EMBOSS-6.4.0old/ajax/core/ajfeatwrite.c EMBOSS-6.4.0/ajax/core/ajfeatwrite.c
-*** EMBOSS-6.4.0old/ajax/core/ajfeatwrite.c	2011-06-23 11:56:06.000000000 +0100
---- EMBOSS-6.4.0/ajax/core/ajfeatwrite.c	2011-09-05 12:23:43.000000000 +0100
-***************
-*** 4134,4140 ****
-          tmpid = owner->Seqid;
-  
-      if(thys->Score)
-! 	ajFmtPrintF(file, "%S\t%S\t%S\t%d\t%d\t%.3f\t%c\t%c\t",
-  	            tmpid,
-  	            thys->Source,
-  	            outtyp,
---- 4134,4140 ----
-          tmpid = owner->Seqid;
-  
-      if(thys->Score)
-! 	ajFmtPrintF(file, "%S\t%S\t%S\t%d\t%d\t%.3g\t%c\t%c\t",
-  	            tmpid,
-  	            thys->Source,
-  	            outtyp,
-***************
-*** 4215,4220 ****
---- 4215,4221 ----
-      while(!ajListIterDone(iter))
-      {
-  	tv     = ajListIterGet(iter);
-+         ajStrFmtLower(&tv->Tag);
-  	outtag = tv->Tag;
-  	
-  	if(!outtag)
-diff -c -N --recursive -a EMBOSS-6.4.0old/ajax/core/ajfmt.c EMBOSS-6.4.0/ajax/core/ajfmt.c
-*** EMBOSS-6.4.0old/ajax/core/ajfmt.c	2011-05-16 11:31:26.000000000 +0100
---- EMBOSS-6.4.0/ajax/core/ajfmt.c	2011-09-05 12:24:01.000000000 +0100
-***************
-*** 50,55 ****
---- 50,65 ----
-  #include "ajax.h"
-  
-  
-+ #define EVF_PERCENT  1
-+ #define EVF_NOCON    2
-+ #define EVF_LONG     4
-+ #define EVF_AJLONG   8
-+ #define EVF_UNSIGNED 16
-+ #define EVF_NEGATE   32
-+ 
-+ #define EVF_BUF 128
-+ 
-+ 
-  typedef void (*Fmt_T) (ajint code, VALIST ap,
-  		       int put(int c, void *cl), void *cl,
-  		       const ajuint* flags, ajint width, ajint precision);
-***************
-*** 148,153 ****
---- 158,165 ----
-  static void cvt_u(ajint code, VALIST ap, int put(int c, void* cl), void* cl,
-  		  const ajuint* flags, ajint width, ajint precision);
-  
-+ static ajint evfscanf(FILE *stream, const char *fmt, va_list ap);
-+ 
-  
-  
-  
-***************
-*** 2290,2296 ****
-      __va_copy(save_ap,ap);
-  #endif
-  
-!     n = fscanf(file,fmt,ap);
-  
-  #if defined(__amd64__) || defined(__EM64T__) || \
-      defined(__PPC__) && defined(_CALL_SYSV)
---- 2302,2308 ----
-      __va_copy(save_ap,ap);
-  #endif
-  
-!     n = evfscanf(file,fmt,ap);
-  
-  #if defined(__amd64__) || defined(__EM64T__) || \
-      defined(__PPC__) && defined(_CALL_SYSV)
-***************
-*** 2306,2311 ****
---- 2318,2836 ----
-  
-  
-  
-+ /* @funcstatic evfscanf *******************************************************
-+ **
-+ ** EMBOSS version of C99 vfscanf() including %S conversion
-+ **
-+ ** @param [r] stream [FILE*] file pointer.
-+ ** @param [r] fmt [const char*] Format string.
-+ ** @param [v] ap [va_list] Variable length argument list
-+ ** @return [ajint] number of successful conversions
-+ **
-+ ** @release 6.4.0
-+ ** @@
-+ ******************************************************************************/
-+ 
-+ static ajint evfscanf(FILE *stream, const char *fmt, va_list ap)
-+ {
-+     char fch = '\0';
-+     int  ipc = 0;
-+     int  tpc = 0;
-+     
-+     ajuint uflags = 0;
-+     ajint  nconv  = 0;
-+     ajint  width  = 0;
-+     AjBool fin    = ajFalse;
-+     AjBool idone  = ajFalse;
-+ 
-+     ajulong sum = 0L;
-+     
-+     ajuint nread = 0;
-+     ajint  ret   = EOF;
-+     ajint  base  = 10;
-+ 
-+     char *p       = NULL;
-+     char fchars[] = "0123456789Ee.";
-+ 
-+     char buf[EVF_BUF];
-+ 
-+     AjPStr *str = NULL;
-+     
-+     union
-+     {
-+         ajlong  L;
-+         long    l;
-+         unsigned long ul;
-+         ajulong uL;
-+         ajint   i;
-+         ajuint  u;
-+         char    *c;
-+         double  d;
-+     } val;
-+     
-+ 
-+     if(feof(stream))
-+         return EOF;
-+ 
-+     val.ul = 0L;
-+     
-+     while((fch = *fmt))
-+     {
-+         ++fmt;
-+ 
-+ 
-+         if(uflags & EVF_PERCENT)
-+         {
-+             /* If %% has been given then do a simple match */
-+             if(fch == '%')
-+             {
-+                 uflags &= ~EVF_PERCENT;
-+ 
-+                 if((ipc = getc(stream)) == EOF)
-+                     break;
-+ 
-+                 ++sum;
-+                 
-+                 if(ipc != (int) fch)
-+                     break;
-+ 
-+                 continue;
-+             }
-+ 
-+             /* Now in the realm of format specifiers */
-+             /* First test for any width */
-+ 
-+             if(fch >= '0' && fch <= '0')
-+             {
-+                 fch -= '0';
-+ 
-+                 if(width == INT_MAX)
-+                     width = 0;
-+                 else
-+                     width *= 10;
-+ 
-+                 width += (ajint) fch;
-+ 
-+                 continue;
-+             }
-+             
-+             if((char) fch != 'S')
-+                 fch = tolower(fch);
-+ 
-+             switch(fch)
-+             {
-+                 case '*':
-+                     uflags |= EVF_NOCON;
-+                     continue;
-+ 
-+                 case 'n':
-+                     if(!(uflags & EVF_NOCON))
-+                         *(va_arg(ap, ajint *)) = (ajint) sum;
-+ 
-+                     break;
-+                     
-+                 case 'c':
-+                     if(!(uflags & EVF_NOCON))
-+                         val.c = va_arg(ap, char *);
-+ 
-+                     if(width == INT_MAX)
-+                         width = 1;
-+ 
-+                     while(width-- > 0)
-+                     {
-+                         if((ipc = getc(stream)) == EOF)
-+                         {
-+                             fin = ajTrue;
-+                             break;
-+                         }
-+ 
-+                         ++nread;
-+                         
-+                         if(!(uflags & EVF_NOCON))
-+                             *val.c++ = (char) ipc;
-+                     }
-+ 
-+                     break;
-+ 
-+                 case 'h':      /* ANSI C converts shorts to ints */
-+                     continue;
-+                     
-+                 case 'l':
-+                     uflags |= EVF_LONG;
-+                     continue;
-+ 
-+                 case 'L':
-+                     uflags |= EVF_AJLONG;
-+                     continue;
-+ 
-+                 case 's':
-+                     if(!(uflags & EVF_NOCON))
-+                         val.c = va_arg(ap, char *);
-+ 
-+                     do
-+                     {
-+                         ipc = getc(stream);
-+                         ++sum;
-+                     } while(isspace(ipc));
-+ 
-+                     if(ipc == EOF)
-+                     {
-+                         fin = ajTrue;
-+                         break;
-+                     }
-+ 
-+                     while(width-- > 0)
-+                     {
-+                         if(isspace(ipc))
-+                         {
-+                             ungetc(ipc, stream);
-+                             --sum;
-+                             break;
-+                         }
-+ 
-+                         if(!(uflags & EVF_NOCON))
-+                             *val.c++ = (char) ipc;
-+ 
-+                         if((ipc = getc(stream)) == EOF)
-+                             break;
-+ 
-+                         ++nread;
-+                     }
-+ 
-+                     if(!(uflags & EVF_NOCON))
-+                         *val.c = '\0';
-+ 
-+                     break;
-+ 
-+                 case 'S':
-+                     if(!(uflags & EVF_NOCON))
-+                     {
-+                         str = (AjPStr *) va_arg(ap, AjPStr *);
-+                         ajStrAssignC(str,"");
-+                     }
-+                     
-+                     do
-+                     {
-+                         ipc = getc(stream);
-+                         ++sum;
-+                     } while(isspace(ipc));
-+ 
-+                     if(ipc == EOF)
-+                     {
-+                         fin = ajTrue;
-+                         break;
-+                     }
-+ 
-+                     while(width-- > 0)
-+                     {
-+                         if(isspace(ipc))
-+                         {
-+                             ungetc(ipc, stream);
-+                             --sum;
-+                             break;
-+                         }
-+ 
-+                         if(!(uflags & EVF_NOCON))
-+                             ajStrAppendK(str, (char) ipc);
-+ 
-+                         if((ipc = getc(stream)) == EOF)
-+                             break;
-+ 
-+                         ++nread;
-+                     }
-+ 
-+                     break;
-+ 
-+                 case 'o':
-+                     base = 8;
-+                     /* Fallthrough */
-+                 case 'x':
-+                     if(base == 10)  /* To protect fallthrough from octal */
-+                         base = 16;
-+                     /* Fallthrough */
-+                 case 'u':
-+                     uflags |= EVF_UNSIGNED;
-+                     /* Fallthrough */
-+                 case 'd':
-+                 case 'i':
-+                     do
-+                     {
-+                         ipc = getc(stream);
-+                         ++sum;
-+                     } while(isspace(ipc));
-+ 
-+                     if(ipc == EOF)
-+                     {
-+                         fin = ajTrue;
-+                         break;
-+                     }
-+                     
-+                     if((char) ipc == '+' || (char) ipc == '-')
-+                     {
-+                         if(--width <= 0)
-+                         {
-+                             fin = ajTrue;
-+                             break;
-+                         }
-+ 
-+                         if((char) ipc == '-')
-+                             uflags |= EVF_NEGATE;
-+ 
-+                         if((ipc = getc(stream)) == EOF)
-+                         {
-+                             fin = ajTrue;
-+                             break;
-+                         }
-+ 
-+                         ++sum;
-+                     }
-+ 
-+                     idone = ajFalse;
-+                     val.uL = 0;                    
-+ 
-+                     if((char) ipc == '0')
-+                     {
-+                         if(--width <= 0)
-+                             idone = ajTrue;
-+ 
-+                         if(!idone)
-+                             if((ipc = getc(stream)) == EOF)
-+                                 idone = ajTrue;
-+ 
-+                         if((char) tolower(ipc) == 'x' && !idone)
-+                         {
-+                             if(fch == 'o' || fch == 'd' || fch == 'u')
-+                             {
-+                                 /* Invalid 0x */
-+                                 ungetc(ipc, stream);
-+                                 idone = ajTrue;
-+                             }
-+ 
-+                             if(!idone)
-+                                 base = 16;
-+ 
-+                             if(!idone)
-+                             {
-+                                 if((ipc = getc(stream)) == EOF)
-+                                     idone = ajTrue;
-+                                 else
-+                                     ++sum;
-+                             }
-+                         }
-+                         else if(fch == 'i' && !idone)
-+                             base = 8;
-+                     }
-+ 
-+                     ++nread;
-+ 
-+                     for(;!idone;)
-+                     {
-+                         tpc = tolower(ipc);
-+ 
-+                         tpc -= '0';
-+ 
-+                         if(tpc > 9)
-+                         {
-+                             tpc += '0';
-+                             tpc -= 'a';
-+ 
-+                             if(tpc >= 0)
-+                                 tpc += 10;
-+                         }
-+ 
-+                         if(tpc < 0 || tpc >= base)
-+                         {
-+                             ungetc(ipc, stream);
-+                             --nread;
-+                             break;
-+                         }
-+ 
-+                         val.uL *= base;
-+                         val.uL += tpc;
-+ 
-+                         if(--width <= 0)
-+                             break;
-+                         
-+                         if((ipc = getc(stream)) == EOF)
-+                             break;
-+ 
-+                         ++nread;
-+                     }
-+ 
-+                     if((uflags & EVF_NEGATE) && !idone)
-+                         val.L = -val.L;
-+                     
-+                     if(!(uflags & EVF_NOCON))
-+                     {
-+                         if((uflags & (EVF_UNSIGNED | EVF_AJLONG)) ==
-+                             (EVF_UNSIGNED | EVF_AJLONG))
-+                             *(va_arg(ap, ajulong *)) = val.uL;
-+                         else if(uflags & (EVF_AJLONG))
-+                             *(va_arg(ap, ajlong *)) = val.L;
-+                         else if((uflags & (EVF_UNSIGNED | EVF_LONG)) ==
-+                                  (EVF_UNSIGNED | EVF_LONG))
-+                             *(va_arg(ap, unsigned long *)) = val.ul;
-+                         else if(uflags & (EVF_LONG))
-+                             *(va_arg(ap, long *)) = val.l;
-+                         else if(uflags & (EVF_UNSIGNED))
-+                             *(va_arg(ap, ajuint *)) = val.u;
-+                         else
-+                             *(va_arg(ap, ajint *)) = val.i;
-+                     }
-+ 
-+                     break;
-+ 
-+                 case 'e':
-+                 case 'f':
-+                 case 'g':
-+                     do
-+                     {
-+                         ipc = getc(stream);
-+                         ++sum;
-+                     } while(isspace(ipc));
-+ 
-+                     if(ipc == EOF)
-+                     {
-+                         --sum;
-+                         fin = ajTrue;
-+                         break;
-+                     }
-+                     
-+                     if((char) ipc == '+' || (char) ipc == '-')
-+                     {
-+                         if((char) ipc == '-')
-+                             uflags |= EVF_NEGATE;
-+ 
-+                         if((ipc = getc(stream)) == EOF)
-+                         {
-+                             fin = ajTrue;
-+                             break;
-+                         }
-+ 
-+                         ++sum;
-+                     }
-+ 
-+                     val.d = 0.0;
-+ 
-+                     ++nread;
-+                     
-+                     for(p = buf; p < buf + EVF_BUF - 1 && width >0; --width)
-+                     {
-+                         if(!strchr(fchars, ipc))
-+                         {
-+                             ungetc(ipc, stream);
-+                             --nread;
-+                             break;
-+                         }
-+ 
-+                         if((char) ipc == 'e' || (char) ipc == 'E')
-+                         {
-+                             fchars[10] = '\0';
-+                             *p++ = (char) ipc;
-+ 
-+                             if((ipc = getc(stream)) == EOF)
-+                                 break;
-+ 
-+                             ++nread;
-+ 
-+                             if((char) ipc != '+' && (char) ipc != '-')
-+                                 continue;
-+                         }
-+                         else if((char) ipc == '.')
-+                             fchars[12] = '\0';
-+ 
-+                         *p++ = (char) ipc;
-+ 
-+                         if((ipc = getc(stream)) == EOF)
-+                             break;
-+ 
-+                         ++nread;
-+                     }
-+                     
-+                     *p++ = '\0';
-+ 
-+                     val.d = strtod(buf, 0);
-+                     
-+                     if(uflags & EVF_NEGATE)
-+                         val.d = -val.d;
-+ 
-+                     fchars[10] = 'E';
-+                     fchars[12] = '.';
-+ 
-+                     *(va_arg(ap, double *)) = val.d;
-+ 
-+                     break;
-+             }
-+ 
-+             if(fin)
-+                 break;
-+             
-+             if(nread)
-+             {
-+                 if(!(uflags & EVF_NOCON))
-+                     ++nconv;
-+ 
-+                 ret = 0;
-+                 sum += nread;
-+             }
-+             else if(fch != 'n' || ipc == EOF)
-+                 break;
-+ 
-+             uflags = 0;
-+         }
-+         else if(fch == '%')
-+         {
-+             uflags = EVF_PERCENT;
-+             base = 10;
-+             nread = 0;
-+             width = INT_MAX;
-+         }
-+         else if(isspace(fch))
-+         {
-+             do
-+             {
-+                 ipc = getc(stream);
-+                 ++sum;
-+             } while(isspace(ipc));
-+ 
-+             --sum;
-+             
-+             if(ipc == EOF)
-+                 break;
-+ 
-+             ungetc(ipc, stream);
-+         }
-+         else
-+         {
-+             if((ipc = getc(stream)) == EOF)
-+                 break;
-+ 
-+             ++sum;
-+             
-+             if(ipc != (int) fch)
-+                 break;
-+         }
-+ 
-+     }
-+ 
-+     if((uflags & EVF_PERCENT) && nread)
-+     {
-+         if(!(uflags & EVF_NOCON))
-+             ++nconv;
-+ 
-+         ret = 0;
-+     }
-+ 
-+     if(ipc == EOF && nconv == 0)
-+         return ret;
-+     
-+     
-+     return nconv;
-+ }
-+ 
-+ 
-+ 
-+ 
-  /* @funcstatic fmtVscan *******************************************************
-  **
-  ** Scan a string according to fmt and load the va_list variable pointers
-diff -c -N --recursive -a EMBOSS-6.4.0old/ajax/core/ajnam.c EMBOSS-6.4.0/ajax/core/ajnam.c
-*** EMBOSS-6.4.0old/ajax/core/ajnam.c	2011-07-15 08:15:37.000000000 +0100
---- EMBOSS-6.4.0/ajax/core/ajnam.c	2011-09-05 12:23:43.000000000 +0100
-***************
-*** 8172,8177 ****
---- 8172,8181 ----
-      AjBool hasmethod = ajFalse;
-      AjBool hastype   = ajFalse;
-      AjPStr name = NULL;
-+     AjPStr token = NULL;
-+     AjPStr typetoken = NULL;
-+     AjPStrTok handle = NULL;
-+     AjPStrTok typehandle = NULL;
-      const AjPStr value = NULL;
-      const AjPStr dbtype = NULL;
-  
-***************
-*** 8202,8210 ****
-  	    {
-  		hasformat=ajTrue;
-  
-!                 if(!namInformatTest(value, dbtype))  /* test: dbunknowns.rc */
-!                         namError("Database '%S' %S: '%S' unknown",
-!                                  entry->name, name, value);
-              }
-  
-              if(ajStrPrefixC(name, "method"))
---- 8206,8227 ----
-  	    {
-  		hasformat=ajTrue;
-  
-!                 ok = ajFalse;
-!                 ajStrTokenAssignC(&typehandle, dbtype, " ,;");
-!                 ajStrTokenAssignC(&handle, value, " ,;");
-! 
-!                 while(ajStrTokenNextParse(&typehandle, &typetoken))
-!                 {
-!                     while(ajStrTokenNextParse(&handle, &token))
-!                     {
-!                         if(namInformatTest(token, typetoken))
-!                             ok = ajTrue;
-!                     }
-!                 }
-! 
-!                 if(!ok) /* test: dbunknowns.rc */
-!                     namError("Database '%S' %S: '%S' unknown",
-!                              entry->name, name, value);
-              }
-  
-              if(ajStrPrefixC(name, "method"))
-***************
-*** 8221,8229 ****
-  		hastype=ajTrue;
-  		oktype = ajFalse;
-  
-! 		for(k=0; namDbTypes[k].Name; k++)
-! 		    if(ajStrMatchCaseC(value, namDbTypes[k].Name)) 
-! 			oktype = ajTrue;
-  
-  		if(!oktype)		/* test: dbunknowns.rc */
-  		    namError("Database '%S' %S: '%S' unknown",
---- 8238,8250 ----
-  		hastype=ajTrue;
-  		oktype = ajFalse;
-  
-!                 ajStrTokenAssignC(&typehandle, value, " ,;");
-!                 while(ajStrTokenNextParse(&typehandle, &typetoken))
-!                 {
-!                     for(k=0; namDbTypes[k].Name; k++)
-!                         if(ajStrMatchCaseC(typetoken, namDbTypes[k].Name)) 
-!                             oktype = ajTrue;
-!                 }
-  
-  		if(!oktype)		/* test: dbunknowns.rc */
-  		    namError("Database '%S' %S: '%S' unknown",
-***************
-*** 8260,8265 ****
---- 8281,8290 ----
-      }
-  
-      ajStrDel(&name);
-+     ajStrTokenDel(&handle);
-+     ajStrTokenDel(&typehandle);
-+     ajStrDel(&token);
-+     ajStrDel(&typetoken);
-  
-      return ok;
-  }
-diff -c -N --recursive -a EMBOSS-6.4.0old/ajax/core/ajnexus.c EMBOSS-6.4.0/ajax/core/ajnexus.c
-*** EMBOSS-6.4.0old/ajax/core/ajnexus.c	2011-03-16 17:14:10.000000000 +0000
---- EMBOSS-6.4.0/ajax/core/ajnexus.c	2011-09-05 12:23:43.000000000 +0100
-***************
-*** 2,24 ****
-  ** @source AJAX nexus file parsing functions
-  **
-  ** @author Copyright (C) 2003 Peter Rice
-! ** @version 1.0
-  ** @@
-  **
-  ** This library is free software; you can redistribute it and/or
-! ** modify it under the terms of the GNU Library General Public
-  ** License as published by the Free Software Foundation; either
-! ** version 2 of the License, or (at your option) any later version.
-  **
-  ** This library is distributed in the hope that it will be useful,
-  ** but WITHOUT ANY WARRANTY; without even the implied warranty of
-  ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-! ** Library General Public License for more details.
-  **
-- ** You should have received a copy of the GNU Library General Public
-- ** License along with this library; if not, write to the
-- ** Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- ** Boston, MA  02111-1307, USA.
-  ******************************************************************************/
-  
-  #include "ajax.h"
---- 2,26 ----
-  ** @source AJAX nexus file parsing functions
-  **
-  ** @author Copyright (C) 2003 Peter Rice
-! ** @version $Revision: 1.20 $
-! ** @modified $Date: 2011/08/09 12:03:22 $ by $Author: rice $
-  ** @@
-  **
-  ** This library is free software; you can redistribute it and/or
-! ** modify it under the terms of the GNU Lesser General Public
-  ** License as published by the Free Software Foundation; either
-! ** version 2.1 of the License, or (at your option) any later version.
-  **
-  ** This library is distributed in the hope that it will be useful,
-  ** but WITHOUT ANY WARRANTY; without even the implied warranty of
-  ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-! ** Lesser General Public License for more details.
-! **
-! ** You should have received a copy of the GNU Lesser General Public
-! ** License along with this library; if not, write to the Free Software
-! ** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-! ** MA  02110-1301,  USA.
-  **
-  ******************************************************************************/
-  
-  #include "ajax.h"
-***************
-*** 152,157 ****
---- 154,161 ----
-  **
-  ** @param [u] buff [AjPFilebuff] Input buffered file
-  ** @return [AjPNexus] Nexus data object
-+ **
-+ ** @release 2.8.0
-  ** @@
-  ******************************************************************************/
-  
-***************
-*** 197,202 ****
---- 201,207 ----
-      if(!ajStrPrefixCaseC(rdline, "#NEXUS"))
-      {				/* first line test */
-  	ajFilebuffReset(buff);
-+         ajStrDel(&rdline);
-  
-  	return NULL;
-      }
-***************
-*** 205,211 ****
---- 210,219 ----
-  
-      ok = ajBuffreadLine(buff, &rdline);
-      if(!ok)
-+     {
-+         ajStrDel(&rdline);
-  	return NULL;
-+     }
-  
-      block = ajFalse;
-      commentlevel = 0;
-***************
-*** 254,260 ****
---- 262,272 ----
-  	else if (block && ajRegExec(endexp, rdline)) /* end line */
-  	{
-  	    if (!nexusBlockSave(ret, blocklist, blockname))
-+             {
-+                 ajStrDel(&rdline);
-+                 ajStrDel(&blockname);
-  		return NULL;
-+             }
-  
-  	    ajStrAssignClear(&blockname);
-  	    block = ajFalse;
-***************
-*** 266,274 ****
-  	    if (ajStrGetLen(rdline))
-  	    {
-  		ajListstrPushAppend(blocklist, rdline);
-  	    }
-- 
-- 	    rdline = NULL;
-  	}
-  
-  	ok = ajBuffreadLine(buff, &rdline);
---- 278,285 ----
-  	    if (ajStrGetLen(rdline))
-  	    {
-  		ajListstrPushAppend(blocklist, rdline);
-+                 rdline = NULL;
-  	    }
-  	}
-  
-  	ok = ajBuffreadLine(buff, &rdline);
-***************
-*** 277,287 ****
-      if (block)
-      {
-  	ajDebug("ajNexusParse unclosed block '%S'\n", blockname);
-! 
-  	return NULL;
-      }
-  
-      ajNexusTrace(ret);
-  
-      return ret;
-  }
---- 288,303 ----
-      if (block)
-      {
-  	ajDebug("ajNexusParse unclosed block '%S'\n", blockname);
-!         ajStrDel(&rdline);
-!         ajStrDel(&blockname);
-  	return NULL;
-      }
-  
-      ajNexusTrace(ret);
-+     ajStrDel(&rdline);
-+     ajStrDel(&blockname);
-+ 
-+     ajListFree(&blocklist);
-  
-      return ret;
-  }
-***************
-*** 295,300 ****
---- 311,318 ----
-  **
-  ** @return [AjPNexus] New AjPNexus object
-  ** @category new [AjPNexus] Default constructor
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  AjPNexus ajNexusNew(void)
-***************
-*** 309,320 ****
-  
-  
-  
-! /* @funcstatic nexusTaxaNew ***********************************************
-  **
-  ** Constructor for AjPNexusTaxa
-  **
-  ** @return [AjPNexusTaxa] New AjPNexusTaxa object
-  ** @category new [AjPNexusTaxa] Default constructor
-  ******************************************************************************/
-  
-  static AjPNexusTaxa nexusTaxaNew(void)
---- 327,340 ----
-  
-  
-  
-! /* @funcstatic nexusTaxaNew ***************************************************
-  **
-  ** Constructor for AjPNexusTaxa
-  **
-  ** @return [AjPNexusTaxa] New AjPNexusTaxa object
-  ** @category new [AjPNexusTaxa] Default constructor
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  static AjPNexusTaxa nexusTaxaNew(void)
-***************
-*** 335,340 ****
---- 355,362 ----
-  **
-  ** @return [AjPNexusCharacters] New AjPNexusCharacters object
-  ** @category new [AjPNexusCharacters] Default constructor
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  static AjPNexusCharacters nexusCharactersNew(void)
-***************
-*** 363,368 ****
---- 385,392 ----
-  **
-  ** @return [AjPNexusUnaligned] New AjPNexusUnaligned object
-  ** @category new [AjPNexusUnaligned] Default constructor
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  static AjPNexusUnaligned nexusUnalignedNew(void)
-***************
-*** 389,394 ****
---- 413,420 ----
-  **
-  ** @return [AjPNexusDistances] New AjPNexusDistances object
-  ** @category new [AjPNexusDistances] Default constructor
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  static AjPNexusDistances nexusDistancesNew(void)
-***************
-*** 409,420 ****
-  
-  
-  
-! /* @funcstatic nexusSetsNew ***********************************************
-  **
-  ** Constructor for AjPNexusSets
-  **
-  ** @return [AjPNexusSets] New AjPNexusSets object
-  ** @category new [AjPNexusSets] Default constructor
-  ******************************************************************************/
-  
-  static AjPNexusSets nexusSetsNew(void)
---- 435,448 ----
-  
-  
-  
-! /* @funcstatic nexusSetsNew ***************************************************
-  **
-  ** Constructor for AjPNexusSets
-  **
-  ** @return [AjPNexusSets] New AjPNexusSets object
-  ** @category new [AjPNexusSets] Default constructor
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  static AjPNexusSets nexusSetsNew(void)
-***************
-*** 435,440 ****
---- 463,470 ----
-  **
-  ** @return [AjPNexusAssumptions] New AjPNexusAssumptions object
-  ** @category new [AjPNexusAssumptions] Default constructor
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  static AjPNexusAssumptions nexusAssumptionsNew(void)
-***************
-*** 452,463 ****
-  
-  
-  
-! /* @funcstatic nexusCodonsNew ***********************************************
-  **
-  ** Constructor for AjPNexusCodons
-  **
-  ** @return [AjPNexusCodons] New AjPNexusCodons object
-  ** @category new [AjPNexusCodons] Default constructor
-  ******************************************************************************/
-  
-  static AjPNexusCodons nexusCodonsNew(void)
---- 482,495 ----
-  
-  
-  
-! /* @funcstatic nexusCodonsNew *************************************************
-  **
-  ** Constructor for AjPNexusCodons
-  **
-  ** @return [AjPNexusCodons] New AjPNexusCodons object
-  ** @category new [AjPNexusCodons] Default constructor
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  static AjPNexusCodons nexusCodonsNew(void)
-***************
-*** 472,483 ****
-  
-  
-  
-! /* @funcstatic nexusTreesNew ***********************************************
-  **
-  ** Constructor for AjPNexusTrees
-  **
-  ** @return [AjPNexusTrees] New AjPNexusTrees object
-  ** @category new [AjPNexusTrees] Default constructor
-  ******************************************************************************/
-  
-  static AjPNexusTrees nexusTreesNew(void)
---- 504,517 ----
-  
-  
-  
-! /* @funcstatic nexusTreesNew **************************************************
-  **
-  ** Constructor for AjPNexusTrees
-  **
-  ** @return [AjPNexusTrees] New AjPNexusTrees object
-  ** @category new [AjPNexusTrees] Default constructor
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  static AjPNexusTrees nexusTreesNew(void)
-***************
-*** 492,503 ****
-  
-  
-  
-! /* @funcstatic nexusNotesNew ***********************************************
-  **
-  ** Constructor for AjPNexusNotes
-  **
-  ** @return [AjPNexusNotes] New AjPNexusNotes object
-  ** @category new [AjPNexusNotes] Default constructor
-  ******************************************************************************/
-  
-  static AjPNexusNotes nexusNotesNew(void)
---- 526,539 ----
-  
-  
-  
-! /* @funcstatic nexusNotesNew **************************************************
-  **
-  ** Constructor for AjPNexusNotes
-  **
-  ** @return [AjPNexusNotes] New AjPNexusNotes object
-  ** @category new [AjPNexusNotes] Default constructor
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  static AjPNexusNotes nexusNotesNew(void)
-***************
-*** 519,524 ****
---- 555,562 ----
-  ** @param [d] pthys [AjPNexus*] AjPNexus object
-  ** @return [void]
-  ** @category delete [AjPNexus] Default destructor
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  void ajNexusDel(AjPNexus* pthys)
-***************
-*** 553,558 ****
---- 591,598 ----
-  ** @param [d] pthys [AjPNexusTaxa*] AjPNexusTaxa object
-  ** @return [void]
-  ** @category delete [AjPNexusTaxa] Default destructor
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  static void nexusTaxaDel(AjPNexusTaxa* pthys)
-***************
-*** 579,584 ****
---- 619,626 ----
-  ** @param [d] pthys [AjPNexusCharacters*] AjPNexusCharacters object
-  ** @return [void]
-  ** @category delete [AjPNexusCharacters] Default destructor
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  static void nexusCharactersDel(AjPNexusCharacters* pthys)
-***************
-*** 618,623 ****
---- 660,667 ----
-  ** @param [d] pthys [AjPNexusUnaligned*] AjPNexusUnaligned object
-  ** @return [void]
-  ** @category delete [AjPNexusUnaligned] Default destructor
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  static void nexusUnalignedDel(AjPNexusUnaligned* pthys)
-***************
-*** 650,655 ****
---- 694,701 ----
-  ** @param [d] pthys [AjPNexusDistances*] AjPNexusDistances object
-  ** @return [void]
-  ** @category delete [AjPNexusDistances] Default destructor
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  static void nexusDistancesDel(AjPNexusDistances* pthys)
-***************
-*** 680,685 ****
---- 726,733 ----
-  ** @param [d] pthys [AjPNexusSets*] AjPNexusSets object
-  ** @return [void]
-  ** @category delete [AjPNexusSets] Default destructor
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  static void nexusSetsDel(AjPNexusSets* pthys)
-***************
-*** 715,720 ****
---- 763,770 ----
-  ** @param [d] pthys [AjPNexusAssumptions*] AjPNexuAssumptionss object
-  ** @return [void]
-  ** @category delete [AjPNexusAssumptions] Default destructor
-+ **
-+ ** @release 2.9.0
-  ******************************************************************************/
-  
-  static void nexusAssumptionsDel(AjPNexusAssumptions* pthys)
-***************
-*** 750,755 ****
---- 800,807 ----
-  ** @param [d] pthys [AjPNexusCodons*] AjPNexusCodons object
-  ** @return [void]
-  ** @category delete [AjPNexusCodons] Default destructor
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  static void nexusCodonsDel(AjPNexusCodons* pthys)
-***************
-*** 780,785 ****
---- 832,839 ----
-  ** @param [d] pthys [AjPNexusTrees*] AjPNexusTrees object
-  ** @return [void]
-  ** @category delete [AjPNexusTrees] Default destructor
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  static void nexusTreesDel(AjPNexusTrees* pthys)
-***************
-*** 802,814 ****
-  
-  
-  
-! /* @funcstatic nexusNotesDel ************************************************
-  **
-  ** Destructor for AjPNexusNotes
-  **
-  ** @param [d] pthys [AjPNexusNotes*] AjPNexusNotes object
-  ** @return [void]
-  ** @category delete [AjPNexusNotes] Default destructor
-  ******************************************************************************/
-  
-  static void nexusNotesDel(AjPNexusNotes* pthys)
---- 856,870 ----
-  
-  
-  
-! /* @funcstatic nexusNotesDel **************************************************
-  **
-  ** Destructor for AjPNexusNotes
-  **
-  ** @param [d] pthys [AjPNexusNotes*] AjPNexusNotes object
-  ** @return [void]
-  ** @category delete [AjPNexusNotes] Default destructor
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  static void nexusNotesDel(AjPNexusNotes* pthys)
-***************
-*** 841,846 ****
---- 897,904 ----
-  ** @param [w] list [AjPList] List of block records
-  ** @param [r] blockname [const AjPStr] Block name
-  ** @return [AjBool] ajTrue on success
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  static AjBool nexusBlockSave(AjPNexus thys, AjPList list,
-***************
-*** 905,911 ****
-  
-  
-  
-! /* @funcstatic nexusCommand ********************************************
-  **
-  ** Finds the next command and command string in a block
-  **
---- 963,969 ----
-  
-  
-  
-! /* @funcstatic nexusCommand ***************************************************
-  **
-  ** Finds the next command and command string in a block
-  **
-***************
-*** 913,918 ****
---- 971,978 ----
-  ** @param [w] command [AjPStr*] Command name
-  ** @param [w] cmdstr [AjPStr*] Command string
-  ** @return [AjBool] ajTrue on success
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  static AjBool nexusCommand(AjPList list, AjPStr* command, AjPStr* cmdstr)
-***************
-*** 944,949 ****
---- 1004,1011 ----
-  		{
-  		    ajRegPre(endcommand, &tmpstr);
-  		    ajStrAssignS(cmdstr, tmpstr);
-+                     ajStrDel(&tmpstr);
-+                     ajStrDel(&rdline);
-  
-  		    return ajTrue;
-  		}
-***************
-*** 957,962 ****
---- 1019,1026 ----
-  	    {
-  		ajRegPre(endcommand, &tmpstr);
-  		ajStrAppendS(cmdstr, tmpstr);
-+                 ajStrDel(&tmpstr);
-+                 ajStrDel(&rdline);
-  
-  		return ajTrue;
-  	    }
-***************
-*** 970,988 ****
-  	}
-      }
-  
-      return ajFalse;
-  }
-  
-  
-  
-  
-! /* @funcstatic nexusParseTaxa ********************************************
-  **
-  ** Parses Nexus commands for a Taxa block
-  **
-  ** @param [w] thys [AjPNexus] Nexus object
-  ** @param [u] list [AjPList] List of block records
-  ** @return [AjBool] ajTrue on success
-  ******************************************************************************/
-  
-  static AjBool nexusParseTaxa(AjPNexus thys, AjPList list)
---- 1034,1056 ----
-  	}
-      }
-  
-+     ajStrDel(&rdline);
-+ 
-      return ajFalse;
-  }
-  
-  
-  
-  
-! /* @funcstatic nexusParseTaxa *************************************************
-  **
-  ** Parses Nexus commands for a Taxa block
-  **
-  ** @param [w] thys [AjPNexus] Nexus object
-  ** @param [u] list [AjPList] List of block records
-  ** @return [AjBool] ajTrue on success
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  static AjBool nexusParseTaxa(AjPNexus thys, AjPList list)
-***************
-*** 1024,1029 ****
---- 1092,1099 ----
-  	    if (!thys->Taxa->Ntax)
-  	    {
-  		ajDebug("nexusParseTaxa failed: dimension Ntax not found\n");
-+                 ajStrDel(&command);
-+                 ajStrDel(&cmdstr);
-  
-  		return ajFalse;
-  	    }
-***************
-*** 1034,1045 ****
---- 1104,1120 ----
-  	    {
-  		ajDebug("nexusParseTaxa failed: Ntax %d read %d TaxLabels\n",
-  			thys->Taxa->Ntax, i);
-+                 ajStrDel(&command);
-+                 ajStrDel(&cmdstr);
-  
-  		return ajFalse;
-  	    }
-  	}
-      }
-  
-+     ajStrDel(&command);
-+     ajStrDel(&cmdstr);
-+ 
-      if (!thys->Taxa->Ntax)
-      {
-  	ajDebug("nexusParseTaxa failed: taxa data not found\n");
-***************
-*** 1061,1066 ****
---- 1136,1143 ----
-  ** @param [u] list [AjPList] List of block records
-  ** @param [r] newtaxa [AjBool] If true, set NewTaxa
-  ** @return [AjBool] ajTrue on success
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  static AjBool nexusParseCharacters(AjPNexus thys, AjPList list, AjBool newtaxa)
-***************
-*** 1145,1150 ****
---- 1222,1229 ----
-  	    if(!nexusGetInt(cmdstr, dimexp3, 1, &thys->Characters->Nchar))
-  	    {
-  		ajDebug("nexusParseCharacters failed: nchar undefined\n");
-+                 ajStrDel(&command);
-+                 ajStrDel(&cmdstr);
-  		return ajFalse;
-  	    }
-  	}
-***************
-*** 1197,1202 ****
---- 1276,1283 ----
-  		ajDebug("nexusParseCharacters "
-  			"failed: Ntax %d read %d TaxLabels\n",
-  			thys->Taxa->Ntax, i);
-+                 ajStrDel(&command);
-+                 ajStrDel(&cmdstr);
-  
-  		return ajFalse;
-  	    }
-***************
-*** 1238,1243 ****
---- 1319,1327 ----
-  	}
-      }
-  
-+     ajStrDel(&command);
-+     ajStrDel(&cmdstr);
-+ 
-      if (!thys->Characters->Nchar)
-      {
-  	ajDebug("nexusParseCharacters failed: dimension nchar undefined\n");
-***************
-*** 1258,1263 ****
---- 1342,1349 ----
-  ** @param [w] thys [AjPNexus] Nexus object
-  ** @param [u] list [AjPList] List of block records
-  ** @return [AjBool] ajTrue on success
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  static AjBool nexusParseUnaligned(AjPNexus thys, AjPList list)
-***************
-*** 1336,1341 ****
---- 1422,1430 ----
-  	}
-      }
-  
-+     ajStrDel(&command);
-+     ajStrDel(&cmdstr);
-+ 
-      return ajTrue;
-  }
-  
-***************
-*** 1349,1354 ****
---- 1438,1445 ----
-  ** @param [w] thys [AjPNexus] Nexus object
-  ** @param [u] list [AjPList] List of block records
-  ** @return [AjBool] ajTrue on success
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  static AjBool nexusParseDistances(AjPNexus thys, AjPList list)
-***************
-*** 1447,1465 ****
-  	}
-      }
-  
-      return ajTrue;
-  }
-  
-  
-  
-  
-! /* @funcstatic nexusParseSets ********************************************
-  **
-  ** Parses Nexus commands for a Sets block
-  **
-  ** @param [w] thys [AjPNexus] Nexus object
-  ** @param [u] list [AjPList] List of block records
-  ** @return [AjBool] ajTrue on success
-  ******************************************************************************/
-  
-  static AjBool nexusParseSets(AjPNexus thys, AjPList list)
---- 1538,1561 ----
-  	}
-      }
-  
-+     ajStrDel(&command);
-+     ajStrDel(&cmdstr);
-+ 
-      return ajTrue;
-  }
-  
-  
-  
-  
-! /* @funcstatic nexusParseSets *************************************************
-  **
-  ** Parses Nexus commands for a Sets block
-  **
-  ** @param [w] thys [AjPNexus] Nexus object
-  ** @param [u] list [AjPList] List of block records
-  ** @return [AjBool] ajTrue on success
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  static AjBool nexusParseSets(AjPNexus thys, AjPList list)
-***************
-*** 1505,1510 ****
---- 1601,1609 ----
-  	}
-      }
-  
-+     ajStrDel(&command);
-+     ajStrDel(&cmdstr);
-+ 
-      return ajTrue;
-  }
-  
-***************
-*** 1518,1523 ****
---- 1617,1624 ----
-  ** @param [w] thys [AjPNexus] Nexus object
-  ** @param [u] list [AjPList] List of block records
-  ** @return [AjBool] ajTrue on success
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  static AjBool nexusParseAssumptions(AjPNexus thys, AjPList list)
-***************
-*** 1594,1612 ****
-  	}
-      }
-  
-      return ajTrue;
-  }
-  
-  
-  
-  
-! /* @funcstatic nexusParseCodons ********************************************
-  **
-  ** Parses Nexus commands for a Codons block
-  **
-  ** @param [w] thys [AjPNexus] Nexus object
-  ** @param [u] list [AjPList] List of block records
-  ** @return [AjBool] ajTrue on success
-  ******************************************************************************/
-  
-  static AjBool nexusParseCodons(AjPNexus thys, AjPList list)
---- 1695,1718 ----
-  	}
-      }
-  
-+     ajStrDel(&command);
-+     ajStrDel(&cmdstr);
-+ 
-      return ajTrue;
-  }
-  
-  
-  
-  
-! /* @funcstatic nexusParseCodons ***********************************************
-  **
-  ** Parses Nexus commands for a Codons block
-  **
-  ** @param [w] thys [AjPNexus] Nexus object
-  ** @param [u] list [AjPList] List of block records
-  ** @return [AjBool] ajTrue on success
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  static AjBool nexusParseCodons(AjPNexus thys, AjPList list)
-***************
-*** 1640,1658 ****
-  	}
-      }
-  
-      return ajTrue;
-  }
-  
-  
-  
-  
-! /* @funcstatic nexusParseTrees ********************************************
-  **
-  ** Parses Nexus commands for a Trees block
-  **
-  ** @param [w] thys [AjPNexus] Nexus object
-  ** @param [u] list [AjPList] List of block records
-  ** @return [AjBool] ajTrue on success
-  ******************************************************************************/
-  
-  static AjBool nexusParseTrees(AjPNexus thys, AjPList list)
---- 1746,1769 ----
-  	}
-      }
-  
-+     ajStrDel(&command);
-+     ajStrDel(&cmdstr);
-+ 
-      return ajTrue;
-  }
-  
-  
-  
-  
-! /* @funcstatic nexusParseTrees ************************************************
-  **
-  ** Parses Nexus commands for a Trees block
-  **
-  ** @param [w] thys [AjPNexus] Nexus object
-  ** @param [u] list [AjPList] List of block records
-  ** @return [AjBool] ajTrue on success
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  static AjBool nexusParseTrees(AjPNexus thys, AjPList list)
-***************
-*** 1681,1699 ****
-  	}
-      }
-  
-      return ajTrue;
-  }
-  
-  
-  
-  
-! /* @funcstatic nexusParseNotes ********************************************
-  **
-  ** Parses Nexus commands for a Notes block
-  **
-  ** @param [w] thys [AjPNexus] Nexus object
-  ** @param [u] list [AjPList] List of block records
-  ** @return [AjBool] ajTrue on success
-  ******************************************************************************/
-  
-  static AjBool nexusParseNotes(AjPNexus thys, AjPList list)
---- 1792,1815 ----
-  	}
-      }
-  
-+     ajStrDel(&command);
-+     ajStrDel(&cmdstr);
-+ 
-      return ajTrue;
-  }
-  
-  
-  
-  
-! /* @funcstatic nexusParseNotes ************************************************
-  **
-  ** Parses Nexus commands for a Notes block
-  **
-  ** @param [w] thys [AjPNexus] Nexus object
-  ** @param [u] list [AjPList] List of block records
-  ** @return [AjBool] ajTrue on success
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  static AjBool nexusParseNotes(AjPNexus thys, AjPList list)
-***************
-*** 1722,1727 ****
---- 1838,1846 ----
-  	}
-      }
-  
-+     ajStrDel(&command);
-+     ajStrDel(&cmdstr);
-+ 
-      return ajTrue;
-  }
-  
-***************
-*** 1737,1742 ****
---- 1856,1863 ----
-  ** @param [u] exp [AjPRegexp] Compiled regular expression for parsing
-  ** @param [w] dest [AjPStr**] Array generated
-  ** @return [ajint] Number of strings returned
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  static ajint nexusGetArray(AjPStr src, AjPRegexp exp,
-***************
-*** 1779,1784 ****
---- 1900,1907 ----
-  ** @param [r] isub [ajint] Substring number to extract
-  ** @param [w] dest [AjPStr*] String generated
-  ** @return [AjBool] ajTrue on success
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  static AjBool nexusGetStr(AjPStr src, AjPRegexp exp, ajint isub, AjPStr* dest)
-***************
-*** 1805,1810 ****
---- 1928,1935 ----
-  ** @param [r] isub [ajint] Substring number to extract
-  ** @param [w] dest [char*] String generated
-  ** @return [AjBool] ajTrue on success
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  static AjBool nexusGetChar(AjPStr src, AjPRegexp exp, ajint isub, char* dest)
-***************
-*** 1841,1846 ****
---- 1966,1973 ----
-  ** @param [r] isub [ajint] Substring number to extract
-  ** @param [w] dest [ajuint*] Integer generated
-  ** @return [AjBool] ajTrue on success
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  static AjBool nexusGetInt(AjPStr src, AjPRegexp exp, ajint isub, ajuint* dest)
-***************
-*** 1860,1866 ****
-  
-  
-  
-! /* @funcstatic nexusGetBool **************************************************
-  **
-  ** Sets a nexus bool from a parsed nexus command in the form [no]name.
-  ** We know name is found, we test for the "no" part.
---- 1987,1993 ----
-  
-  
-  
-! /* @funcstatic nexusGetBool ***************************************************
-  **
-  ** Sets a nexus bool from a parsed nexus command in the form [no]name.
-  ** We know name is found, we test for the "no" part.
-***************
-*** 1870,1875 ****
---- 1997,2004 ----
-  ** @param [r] isub [ajint] Substring number to extract
-  ** @param [w] dest [AjBool*] Boolean generated
-  ** @return [AjBool] ajTrue on success
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  static AjBool nexusGetBool(AjPStr src, AjPRegexp exp, ajint isub, AjBool* dest)
-***************
-*** 1893,1899 ****
-  
-  
-  
-! /* @funcstatic nexusVocab ***************************************************
-  **
-  ** Tests a string against a controlled vocabulary
-  **
---- 2022,2028 ----
-  
-  
-  
-! /* @funcstatic nexusVocab *****************************************************
-  **
-  ** Tests a string against a controlled vocabulary
-  **
-***************
-*** 1901,1906 ****
---- 2030,2037 ----
-  ** @param [r] src [const AjPStr] String to be tested
-  ** @param [r] vocab [const char* []] List of known values, ending in a NULL
-  ** @return [AjBool] ajTrue on success
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  static AjBool nexusVocab(const char* title, const AjPStr src,
-***************
-*** 1927,1932 ****
---- 2058,2065 ----
-  **
-  ** @param [r] thys [const AjPNexus] nexus object
-  ** @return [void]
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  void ajNexusTrace(const AjPNexus thys)
-***************
-*** 2430,2435 ****
---- 2563,2570 ----
-  **
-  ** @param [r] thys [const AjPNexus] Nexus object
-  ** @return [AjPStr*] taxa string array, NULL terminated, read only
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  AjPStr* ajNexusGetTaxa(const AjPNexus thys)
-***************
-*** 2452,2457 ****
---- 2587,2594 ----
-  **
-  ** @param [r] thys [const AjPNexus] Nexus object
-  ** @return [ajuint] Number of taxa
-+ **
-+ ** @release 2.8.0
-  ** @@
-  ******************************************************************************/
-  
-***************
-*** 2478,2483 ****
---- 2615,2622 ----
-  **
-  ** @param [u] thys [AjPNexus] Nexus object
-  ** @return [AjPStr*] taxa string array, NULL terminated, read only
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  AjPStr* ajNexusGetSequences(AjPNexus thys)
-***************
-*** 2502,2507 ****
---- 2641,2648 ----
-  **
-  ** @param [u] thys [AjPNexus] Nexus object
-  ** @return [AjBool] ajTrue on success
-+ **
-+ ** @release 2.8.0
-  ******************************************************************************/
-  
-  static AjBool nexusSetSequences(AjPNexus thys)
-***************
-*** 2591,2597 ****
-  
-  	for (i=0; thys->Taxa->TaxLabels[i]; i++)
-  	{
-! 	    seqstr = ajStrNewRes(thys->Characters->Nchar+1);
-  	    ajTablePut(seqtab, thys->Taxa->TaxLabels[i], seqstr);
-  	    seqstr = NULL;
-  	}
---- 2732,2738 ----
-  
-  	for (i=0; thys->Taxa->TaxLabels[i]; i++)
-  	{
-!             seqstr = ajStrNewRes(thys->Characters->Nchar+1);
-  	    ajTablePut(seqtab, thys->Taxa->TaxLabels[i], seqstr);
-  	    seqstr = NULL;
-  	}
-***************
-*** 2599,2604 ****
---- 2740,2746 ----
-      else
-      {
-  	AJCNEW0(thys->Taxa->TaxLabels, (thys->Ntax+1));
-+         ajDebug("thys->Taxa->TaxLabels 0..%u\n", (thys->Ntax+1));
-      }
-  
-      taxlabel = NULL;
-***************
-*** 2609,2614 ****
---- 2751,2757 ----
-  	ajStrAssignS(&rdline, thys->Characters->Matrix[i]);
-  	ajStrRemoveWhiteExcess(&rdline);
-  
-+         ajDebug("rdline: '%S'\n", rdline);
-  	if (!taxlabel || thys->Characters->Interleave ||
-  	    (ajStrGetLen(seqstr) >= thys->Characters->Nchar))
-  	{				/* next tax label */
-***************
-*** 2617,2629 ****
---- 2760,2782 ----
-  
-  	    ajRegSubI(word, 0, &taxlabel);
-  	    ajRegPost(word, &tmpstr);
-+             ajDebug("taxlabel '%S' rest '%S'\n", taxlabel, tmpstr);
-  	    ajStrAssignS(&rdline, tmpstr);
-  	    ajStrQuoteStripAll(&taxlabel);
-+             ajDebug("unquoted taxlabel %p '%S'\n", taxlabel, taxlabel);
-  
-  	    if (!havetaxa)
-  	    {
-+                 ajDebug("ajTablePut itax.%u label %p '%S'\n",
-+                         itax,
-+                         thys->Taxa->TaxLabels[itax],
-+                         thys->Taxa->TaxLabels[itax]);
-  		ajStrAssignS(&thys->Taxa->TaxLabels[itax], taxlabel);
-  		seqstr = ajStrNewRes(thys->Characters->Nchar+1);
-+                 ajDebug("ajTablePut itax %u label %p '%S'\n",
-+                         itax,
-+                         thys->Taxa->TaxLabels[itax],
-+                         thys->Taxa->TaxLabels[itax]);
-  		ajTablePut(seqtab, thys->Taxa->TaxLabels[itax], seqstr);
-  		seqstr = NULL;
-  		itax++;
-***************
-*** 2631,2638 ****
---- 2784,2793 ----
-  		    havetaxa = ajTrue;
-  	    }
-  
-+             ajDebug("havetaxa: %B taxlabel '%S'\n", havetaxa, taxlabel);
-  	    seqstr = ajTableFetchmodS(seqtab, taxlabel);
-  
-+             ajDebug("seqstr '%S'\n", seqstr);
-  	    if (!seqstr)
-  	    {
-  		ajErr("Unknown taxon '%S' in nexus data", taxlabel);
-***************
-*** 2650,2661 ****
-  	{
-  	    ajRegSubI(word, 0, &tmpstr);
-  	    ajStrAppendS(&seqstr, tmpstr);
-- 	    ajTablePut(seqtab, taxlabel, seqstr); /* just to make sure */
-  	    ajRegPost(word, &tmpstr);
-  	    ajStrAssignS(&rdline, tmpstr);
-  	}
-  
-  	ajStrExchangeKK(&seqstr, gapch, '-');
-      }
-  
-      ajRegFree(&word);
---- 2805,2816 ----
-  	{
-  	    ajRegSubI(word, 0, &tmpstr);
-  	    ajStrAppendS(&seqstr, tmpstr);
-  	    ajRegPost(word, &tmpstr);
-  	    ajStrAssignS(&rdline, tmpstr);
-  	}
-  
-  	ajStrExchangeKK(&seqstr, gapch, '-');
-+         ajDebug("seqstr updated '%S'\n", seqstr);
-      }
-  
-      ajRegFree(&word);
-***************
-*** 2683,2688 ****
---- 2838,2845 ----
-      }
-  
-      ajTableFree(&seqtab);
-+     ajStrDel(&firstseq);
-+     ajStrDel(&taxlabel);
-  
-      return ajTrue;
-  }
-***************
-*** 2700,2705 ****
---- 2857,2864 ----
-  ** @param  [d] pthis [AjPStr**] Pointer to the string array to be deleted.
-  **         The pointer is always deleted.
-  ** @return [void]
-+ **
-+ ** @release 4.0.0
-  ** @@
-  ******************************************************************************/
-  
-diff -c -N --recursive -a EMBOSS-6.4.0old/ajax/core/ajpat.c EMBOSS-6.4.0/ajax/core/ajpat.c
-*** EMBOSS-6.4.0old/ajax/core/ajpat.c	2010-04-14 09:04:16.000000000 +0100
---- EMBOSS-6.4.0/ajax/core/ajpat.c	2011-09-05 12:23:43.000000000 +0100
-***************
-*** 752,757 ****
---- 752,759 ----
-  	default:
-  	    mismreg = ajRegCompC("<mismatch=(\\d+)>");
-  
-+             mismatch=mismatches; /* set for first pattern */
-+ 
-  	    while (ajBuffreadLineTrim(infile,&line))
-  	    {
-  		if (ajStrGetCharFirst(line) == '>')
-***************
-*** 762,768 ****
-  					    mismatch);
-  			ajStrSetClear(&name);
-  			ajStrSetClear(&pat);
-! 			mismatch=mismatches;
-  		    }
-  
-  		    ajStrCutStart(&line,1);
---- 764,770 ----
-  					    mismatch);
-  			ajStrSetClear(&name);
-  			ajStrSetClear(&pat);
-! 			mismatch=mismatches; /* reset for next pattern */
-  		    }
-  
-  		    ajStrCutStart(&line,1);
-diff -c -N --recursive -a EMBOSS-6.4.0old/ajax/core/ajquery.c EMBOSS-6.4.0/ajax/core/ajquery.c
-*** EMBOSS-6.4.0old/ajax/core/ajquery.c	2011-07-03 12:39:13.000000000 +0100
---- EMBOSS-6.4.0/ajax/core/ajquery.c	2011-09-05 12:23:43.000000000 +0100
-***************
-*** 1609,1615 ****
---- 1609,1622 ----
-      fmtstat = ajRegExec(queryRegFmt, *Pqry);
-  
-      if(!fmtstat)
-+     {
-+         if(ajStrGetLen(textin->Formatstr))
-+         {
-+             if(findformat(textin->Formatstr, &textin->Format))
-+                 ajStrAssignS(&qry->Formatstr, textin->Formatstr);
-+         }
-  	return NULL;
-+     }
-  
-      ajRegSubI(queryRegFmt, 1, &queryFormat);
-      ajRegSubI(queryRegFmt, 2, Pqry);
-***************
-*** 2716,2730 ****
-                          ajDebug("ajQueryAddFieldOrC.i '%s' '%S'\n",
-                                  "id", qrystring);
-  
-!                         ajQueryAddFieldElseC(qry, "acc",
-!                                              MAJSTRGETPTR(qrystring));
-!                         ajDebug("ajQueryAddFieldElseC.i '%s' '%S'\n",
-!                                 "acc", qrystring);
-                          
-!                         ajQueryAddFieldElseC(qry, "sv",
-!                                              MAJSTRGETPTR(qrystring));
-!                         ajDebug("ajQueryAddFieldElseC.i '%s' '%S'\n",
-!                                 "sv", qrystring);
-                      }
-                      ajStrAssignS(&lastoper, operstr);
-                      ajStrTrimWhite(&lastoper);
---- 2723,2743 ----
-                          ajDebug("ajQueryAddFieldOrC.i '%s' '%S'\n",
-                                  "id", qrystring);
-  
-!                         if(qry->HasAcc && ajQueryKnownFieldC(qry, "acc"))
-!                         {
-!                             ajQueryAddFieldElseC(qry, "acc",
-!                                                  MAJSTRGETPTR(qrystring));
-!                             ajDebug("ajQueryAddFieldElseC.i '%s' '%S'\n",
-!                                     "acc", qrystring);
-!                         }
-                          
-!                         if(ajQueryKnownFieldC(qry, "sv"))
-!                         {
-!                             ajQueryAddFieldElseC(qry, "sv",
-!                                                  MAJSTRGETPTR(qrystring));
-!                             ajDebug("ajQueryAddFieldElseC.i '%s' '%S'\n",
-!                                     "sv", qrystring);
-!                         }
-                      }
-                      ajStrAssignS(&lastoper, operstr);
-                      ajStrTrimWhite(&lastoper);
-diff -c -N --recursive -a EMBOSS-6.4.0old/ajax/core/ajrange.c EMBOSS-6.4.0/ajax/core/ajrange.c
-*** EMBOSS-6.4.0old/ajax/core/ajrange.c	2010-05-21 11:54:40.000000000 +0100
---- EMBOSS-6.4.0/ajax/core/ajrange.c	2011-09-05 12:23:43.000000000 +0100
-***************
-*** 179,185 ****
-                                    ajuint minsize, ajuint size)
-  {
-      AjPRange ret = NULL;
-!     AjPFile infile;
-      AjPStr line   = NULL;
-      char whiteSpace[] = " \t\n\r";
-      char notSpace[]   = "\n\r";
---- 179,185 ----
-                                    ajuint minsize, ajuint size)
-  {
-      AjPRange ret = NULL;
-!     AjPFile infile = NULL;
-      AjPStr line   = NULL;
-      char whiteSpace[] = " \t\n\r";
-      char notSpace[]   = "\n\r";
-***************
-*** 189,197 ****
-      ajuint numone;
-      ajuint numtwo;
-      
-!     AjPStr one;
-!     AjPStr two;
-!     AjPStr text;
-      
-      AjPList onelist;
-      AjPList twolist;
---- 189,197 ----
-      ajuint numone;
-      ajuint numtwo;
-      
-!     AjPStr one = NULL;
-!     AjPStr two = NULL;
-!     AjPStr text = NULL;
-      
-      AjPList onelist;
-      AjPList twolist;
-***************
-*** 229,241 ****
-  	one = ajStrNew();
-  	ajStrTokenNextParse(&tokens, &one);
-  	ajListstrPushAppend(onelist, one);
-  	
-  	two = ajStrNew();
-  	ajStrTokenNextParse(&tokens, &two);
-  
-  	if(ajStrGetLen(two))
-! 	    ajListstrPushAppend(twolist, two);
-! 	else
-  	{
-  	    ajWarn("Odd integer(s) in range specification:\n%S\n", line);
-  
---- 229,245 ----
-  	one = ajStrNew();
-  	ajStrTokenNextParse(&tokens, &one);
-  	ajListstrPushAppend(onelist, one);
-+         one = NULL;
-  	
-  	two = ajStrNew();
-  	ajStrTokenNextParse(&tokens, &two);
-  
-  	if(ajStrGetLen(two))
-! 	{
-!             ajListstrPushAppend(twolist, two);
-!             two = NULL;
-!         }
-!         else
-  	{
-  	    ajWarn("Odd integer(s) in range specification:\n%S\n", line);
-  
-***************
-*** 247,256 ****
---- 251,264 ----
-  	ajStrTokenNextParseC(&tokens, notSpace, &text);
-  	ajStrTrimWhite(&text);
-  	ajListstrPushAppend(textlist, text);
-+ 	text = NULL;
-  	
-  	ajStrTokenDel( &tokens);	
-      }
-      
-+     ajFileClose(&infile);
-+     ajStrDel(&line);
-+ 
-      /* now we know how many pairs of numbers to store, create ajRange object */
-      n  = ajListstrGetLength(onelist);
-      if(size)
-***************
-*** 331,336 ****
---- 339,345 ----
-  	/* do the text */
-  	ajListstrPop(textlist, &text);
-  	ret->text[k] = text;
-+         text = NULL;
-      }
-  
-  
-diff -c -N --recursive -a EMBOSS-6.4.0old/ajax/core/ajseqabi.c EMBOSS-6.4.0/ajax/core/ajseqabi.c
-*** EMBOSS-6.4.0old/ajax/core/ajseqabi.c	2011-05-19 11:28:09.000000000 +0100
---- EMBOSS-6.4.0/ajax/core/ajseqabi.c	2011-09-05 12:23:43.000000000 +0100
-***************
-*** 181,186 ****
---- 181,187 ----
-  	    *machine = ajStrNewRes(l+1);
-  	    ajReadbinBinary(fp,1,l,(void*)ajStrGetuniquePtr(machine));
-  	    *(ajStrGetuniquePtr(machine)+l)='\0';
-+             ajStrSetValid(machine);
-  	}
-  	else
-  	    return ajFalse;
-***************
-*** 961,966 ****
---- 962,968 ----
-  	*sample = ajStrNewRes(l+1);
-  	ajReadbinBinary(fp,1,l,(void*)ajStrGetuniquePtr(sample));
-  	*(ajStrGetuniquePtr(sample)+l)='\0';
-+         ajStrSetValid(sample);
-      }
-  
-      return ajTrue;
-diff -c -N --recursive -a EMBOSS-6.4.0old/ajax/core/ajseqread.c EMBOSS-6.4.0/ajax/core/ajseqread.c
-*** EMBOSS-6.4.0old/ajax/core/ajseqread.c	2011-06-27 08:38:44.000000000 +0100
---- EMBOSS-6.4.0/ajax/core/ajseqread.c	2011-09-05 12:23:43.000000000 +0100
-***************
-*** 5497,5502 ****
---- 5497,5503 ----
-  static AjBool seqReadRaw(AjPSeq thys, AjPSeqin seqin)
-  {
-      AjPFilebuff buff;
-+     const char* cp;
-      AjPFile fp;
-      AjBool ok = ajFalse;
-      ajulong filestat = 0L;
-***************
-*** 5506,5588 ****
-      AjPStr buf = NULL;
-      char *cbuf;
-      AjPStr tmpseq = NULL;
-! 
-!     if(!seqRegRawNonseq)
-! 	seqRegRawNonseq = ajRegCompC("[^A-Za-z0-9 \t\n\r*-]");
-  
-      buff = seqin->Input->Filebuff;
-      fp = ajFilebuffGetFile(buff);
-  
-!     ajDebug("seqReadRaw\n");
-  
-      if(ajFilebuffIsEnded(buff))
-  	return ajFalse;
-  
-!     buf = ajStrNewRes(4096);
-!     ajStrSetValidLen(&buf, inc);
-!     cbuf = ajStrGetuniquePtr(&buf);
-! 
-!     filestat = ajFileSeek(fp, 0L, SEEK_END);
-!     filesize = ajFileResetPos(fp);
-!     filestat = ajFileSeek(fp, (ajlong) filestat, 0);
-  
-!     ok = ajTrue;
-  
-!     for(i=0; i < filesize; i += inc)
-      {
-!         if((i+inc) > filesize)
-          {
-! 	  inc = (ajuint) (filesize - i);
-!             ajStrSetValidLen(&buf, inc);
-          }
-  
-!         ajReadbinBinary(fp, inc, 1, cbuf);
-!         cbuf[inc] = '\0';
-  
-!         if(strlen(cbuf) != inc)
-          {
-! 	    ajDebug("seqReadRaw: Null character found in line: %s\n",
-! 		    cbuf);
-!             ok = ajFalse;
-!             break;
-          }
-  
-! 	if(ajRegExec(seqRegRawNonseq, buf))
-! 	{
-! 	    ajDebug("seqReadRaw: Bad character found in line: %s\n",
-! 		    cbuf);
-!             ok = ajFalse;
-!             break;
-!         }
-  
-!         ajStrAssignC(&tmpseq, cbuf);
-  
-!         if(seqin->Input->Text)
-!             ajStrAppendS(&thys->TextPtr, tmpseq);
-  
-! 	seqAppend(&thys->Seq, tmpseq);
-! 	seqin->Input->Records++;
-!         ajDebug("read %d lines\n", seqin->Input->Records);
-!     }
-  
-!     ajStrDel(&buf);
-!     ajStrDel(&tmpseq);
-  
-!     if(!ok)
-!     {
-!         ajFileSeek(fp,(ajlong) filestat,0);
-  
-!         if(seqin->Input->Text)
-!             ajStrAssignC(&thys->TextPtr, "");
-  
-- 	ajFilebuffResetPos(buff);
-  
-- 	return ajFalse;
-      }
-  
-      ajFilebuffClear(buff, -1);
-      buff->File->End=ajTrue;
-  
-      return ajTrue;
-  }
-  
---- 5507,5645 ----
-      AjPStr buf = NULL;
-      char *cbuf;
-      AjPStr tmpseq = NULL;
-!     size_t iread;
-!     
-!     ajDebug("seqReadRaw\n");
-  
-      buff = seqin->Input->Filebuff;
-      fp = ajFilebuffGetFile(buff);
-  
-!     if(!seqRegRawNonseq)
-! 	seqRegRawNonseq = ajRegCompC("[^A-Za-z0-9 \t\n\r*-]");
-  
-      if(ajFilebuffIsEnded(buff))
-  	return ajFalse;
-  
-!     filestat = ajFileSeek(fp, 0L, SEEK_CUR);
-  
-!     if(filestat)
-!     {
-!         /* not a file - cannot use binary, so we can only read the buffer */
-!         while(ajBuffreadLineStore(buff, &seqReadLine,
-!                                   seqin->Input->Text, &thys->TextPtr))
-!         {
-!             ajDebug("read '%S'\n", seqReadLine);
-! 
-!             cp = ajStrGetPtr(seqReadLine);
-!             if(strlen(cp) != ajStrGetLen(seqReadLine))
-!             {
-!                 ajDebug("seqReadRaw: Null character found in line: %S\n",
-!                         seqReadLine);
-!                 ajFilebuffResetStore(buff, seqin->Input->Text, &thys->TextPtr);
-!                 ajStrAssignClear(&thys->Seq);
-! 
-!                 return ajFalse;
-!             }
-!         
-!             if(ajRegExec(seqRegRawNonseq, seqReadLine))
-!             {
-!                 ajDebug("seqReadRaw: Bad character found in line: %S\n",
-!                         seqReadLine);
-!                 ajFilebuffResetStore(buff, seqin->Input->Text, &thys->TextPtr);
-!                 ajStrAssignClear(&thys->Seq);
-  
-!                 return ajFalse;
-!             }
-!             seqAppend(&thys->Seq, seqReadLine);
-!             seqin->Input->Records++;
-!             ajDebug("read %d lines\n", seqin->Input->Records);
-!         }
-!     }
-!     else
-      {
-!         if(ajFilebuffIsEnded(buff))
-          {
-!             ajFileSeek(fp, 0L, SEEK_END);
-!             return ajFalse;
-          }
-  
-!         buf = ajStrNewRes(4096);
-!         ajStrSetValidLen(&buf, inc);
-!         cbuf = ajStrGetuniquePtr(&buf);
-  
-!         filestat = ajFileSeek(fp, 0L, SEEK_END);
-!         filesize = ajFileResetPos(fp);
-!         filestat = ajFileSeek(fp, 0L, SEEK_SET);
-! 
-!         if(!filesize)
-          {
-!             ajFileSeek(fp,(ajlong) filesize, SEEK_SET);
-!             return ajFalse;
-          }
-+         
-+         ok = ajTrue;
-  
-!         for(i=0; i < filesize; i += inc)
-!         {
-!             if((i+inc) > filesize)
-!             {
-!                 inc = (ajuint) (filesize - i);
-!                 ajStrSetValidLen(&buf, inc);
-!             }
-! 
-!             iread = ajReadbinBinary(fp, inc, 1, cbuf);
-!             cbuf[inc] = '\0';
-  
-!             if(strlen(cbuf) != iread)
-!             {
-!                 ajDebug("seqReadRaw: Null character found in line: %s\n",
-!                         cbuf);
-!                 ok = ajFalse;
-!                 break;
-!             }
-  
-!             if(ajRegExec(seqRegRawNonseq, buf))
-!             {
-!                 ajDebug("seqReadRaw: Bad character found in line: %S\n",
-!                         seqReadLine);
-!                 ok = ajFalse;
-!                 break;
-!             }
-  
-!             ajStrAssignC(&tmpseq, cbuf);
-  
-!             if(seqin->Input->Text)
-!                 ajStrAppendS(&thys->TextPtr, tmpseq);
-  
-!             seqAppend(&thys->Seq, tmpseq);
-!             seqin->Input->Records++;
-!             ajDebug("read %d lines\n", seqin->Input->Records);
-!         }
-  
-!         ajStrDel(&buf);
-!         ajStrDel(&tmpseq);
-! 
-!         if(!ok)
-!         {
-!             ajFileSeek(fp,(ajlong) filestat,0);
-! 
-!             if(seqin->Input->Text)
-!                 ajStrAssignC(&thys->TextPtr, "");
-! 
-!             ajFilebuffResetPos(buff);
-! 
-!             return ajFalse;
-!         }
-  
-  
-      }
-  
-      ajFilebuffClear(buff, -1);
-      buff->File->End=ajTrue;
-  
-+     if(!seqin->Input->Records)
-+ 	return ajFalse;
-+ 
-      return ajTrue;
-  }
-  
-***************
-*** 7898,7903 ****
---- 7955,7961 ----
-      ajuint j;
-      AjPFilebuff buff;
-      AjPStr* seqs = NULL;
-+     AjPStr* names = NULL;
-      AjPNexus nexus = NULL;
-  
-      SeqPMsfData phydata      = NULL;
-***************
-*** 7953,7960 ****
-  	seqs = ajNexusGetTaxa(phydata->Nexus);
-  	phydata->Names = AJCALLOC(phydata->Nseq, sizeof(*phydata->Names));
-  
-! 	for(j=0;j<phydata->Nseq;j++)
-! 	    ajStrAssignS(&phydata->Names[j], seqs[j]);
-  
-  	seqin->SeqData = phydata;
-  	ajDebug("Nexus parsed %d sequences\n", phydata->Nseq);
---- 8011,8021 ----
-  	seqs = ajNexusGetTaxa(phydata->Nexus);
-  	phydata->Names = AJCALLOC(phydata->Nseq, sizeof(*phydata->Names));
-  
-!         if(seqs)
-!         {
-!             for(j=0;j<phydata->Nseq;j++)
-!                 ajStrAssignS(&phydata->Names[j], seqs[j]);
-!         }
-  
-  	seqin->SeqData = phydata;
-  	ajDebug("Nexus parsed %d sequences\n", phydata->Nseq);
-***************
-*** 7974,7995 ****
-  	return ajFalse;
-      }
-  
-!     if (!phydata->Names)		/* finally set from the sequences */
-!     {
-! 	seqs = ajNexusGetTaxa(phydata->Nexus);
-  	phydata->Names = AJCALLOC(phydata->Nseq, sizeof(*phydata->Names));
-  
-  	for(j=0;j<phydata->Nseq;j++)
-! 	    ajStrAssignS(&phydata->Names[j], seqs[j]);
-      }
-  
-      ajDebug("returning [%d] '%S'\n", i, phydata->Names[i]);
-  
-      ajStrAssignS(&thys->Name, phydata->Names[i]);
-  
--     thys->Weight = 1.0;
--     ajStrAssignS(&thys->Seq, seqs[i]);
-- 
-      phydata->Count++;
-  
-      if(phydata->Count >= phydata->Nseq)
---- 8035,8057 ----
-  	return ajFalse;
-      }
-  
-!     thys->Weight = 1.0;
-!     ajStrAssignS(&thys->Seq, seqs[i]);
-! 
-!     if (!phydata->Names)
-  	phydata->Names = AJCALLOC(phydata->Nseq, sizeof(*phydata->Names));
-  
-+     if (!phydata->Names[0])		/* finally set from the sequences */
-+     {
-+ 	names = ajNexusGetTaxa(phydata->Nexus);
-  	for(j=0;j<phydata->Nseq;j++)
-! 	    ajStrAssignS(&phydata->Names[j], names[j]);
-      }
-  
-      ajDebug("returning [%d] '%S'\n", i, phydata->Names[i]);
-  
-      ajStrAssignS(&thys->Name, phydata->Names[i]);
-  
-      phydata->Count++;
-  
-      if(phydata->Count >= phydata->Nseq)
-***************
-*** 13827,13833 ****
-  	ajStrAssignC(&seqFtFmtGff, "gff3");
-  
-      if(!seqRegGff3Typ)
-! 	seqRegGff3Typ = ajRegCompC("^#!(.*)");
-  
-      ok = ajBuffreadLineStore(buff, &seqReadLine,
-  			    seqin->Input->Text, &thys->TextPtr);
---- 13889,13895 ----
-  	ajStrAssignC(&seqFtFmtGff, "gff3");
-  
-      if(!seqRegGff3Typ)
-! 	seqRegGff3Typ = ajRegCompC("^#!Type (.*)");
-  
-      ok = ajBuffreadLineStore(buff, &seqReadLine,
-  			    seqin->Input->Text, &thys->TextPtr);
-***************
-*** 13885,13891 ****
-  
-  	if(ajRegExec(seqRegGff3Typ, seqReadLine))
-  	{
-! 	    ajFmtPrintS(&outstr, "%S\n", seqReadLine);
-  	}
-  
-  	ok = ajBuffreadLineStore(buff, &seqReadLine,
---- 13947,13954 ----
-  
-  	if(ajRegExec(seqRegGff3Typ, seqReadLine))
-  	{
-!  	    ajRegSubI(seqRegGff3Typ, 1, &typstr);
-!  	    ajFmtPrintS(&outstr, "#!Type %S", typstr);
-  	}
-  
-  	ok = ajBuffreadLineStore(buff, &seqReadLine,
-***************
-*** 13966,13972 ****
-  	ajFeattabinDel(&seqin->Ftquery);
-  	seqin->Ftquery = ajFeattabinNewSSF(seqFtFmtGff, thys->Name,
-  					   ajStrGetPtr(seqin->Type), ftfile);
-! 	ajDebug("GFF FEAT TabIn %x\n", seqin->Ftquery);
-  	ftfile = NULL;
-  	ajFeattableDel(&seqin->Fttable);
-  	ajFeattableDel(&thys->Fttable);
---- 14029,14035 ----
-  	ajFeattabinDel(&seqin->Ftquery);
-  	seqin->Ftquery = ajFeattabinNewSSF(seqFtFmtGff, thys->Name,
-  					   ajStrGetPtr(seqin->Type), ftfile);
-! 	ajDebug("GFF3 FEAT TabIn %x\n", seqin->Ftquery);
-  	ftfile = NULL;
-  	ajFeattableDel(&seqin->Fttable);
-  	ajFeattableDel(&thys->Fttable);
-diff -c -N --recursive -a EMBOSS-6.4.0old/ajax/ensembl/ensdatabaseadaptor.c EMBOSS-6.4.0/ajax/ensembl/ensdatabaseadaptor.c
-*** EMBOSS-6.4.0old/ajax/ensembl/ensdatabaseadaptor.c	2011-07-06 22:50:28.000000000 +0100
---- EMBOSS-6.4.0/ajax/ensembl/ensdatabaseadaptor.c	2011-09-05 12:23:43.000000000 +0100
-***************
-*** 156,163 ****
-  ** @argrule Ini dbc [EnsPDatabaseconnection] Ensembl Database Connection
-  ** @argrule Ini database [AjPStr] Database name
-  ** @argrule Ini species [AjPStr] Species
-! ** @argrule Ini dbag [EnsEDatabaseadaptorGroup] Ensembl Database Adaptor Group
-! ** enumeration
-  ** @argrule Ini multi [AjBool] Multiple species
-  ** @argrule Ini identifier [ajuint] Species identifier
-  ** @argrule Url url [const AjPStr] Uniform Resource Locator
---- 156,163 ----
-  ** @argrule Ini dbc [EnsPDatabaseconnection] Ensembl Database Connection
-  ** @argrule Ini database [AjPStr] Database name
-  ** @argrule Ini species [AjPStr] Species
-! ** @argrule Ini dbag [EnsEDatabaseadaptorGroup]
-! ** Ensembl Database Adaptor Group enumeration
-  ** @argrule Ini multi [AjBool] Multiple species
-  ** @argrule Ini identifier [ajuint] Species identifier
-  ** @argrule Url url [const AjPStr] Uniform Resource Locator
-***************
-*** 239,245 ****
-          return NULL;
-  
-      collectionre =
-!         ajRegCompC("^\\w+_collection_([a-z]+)(?:_\\d+)?_(\\d+)_\\w+");
-  
-      multire =
-          ajRegCompC("^ensembl_([a-z]+)(_\\w+?)*?(?:_\\d+)?_(\\d+)$");
---- 239,245 ----
-          return NULL;
-  
-      collectionre =
-!         ajRegCompC("^(\\w+)_collection_([a-z]+)(?:_\\d+)?_(\\d+)_\\w+");
-  
-      multire =
-          ajRegCompC("^ensembl_([a-z]+)(_\\w+?)*?(?:_\\d+)?_(\\d+)$");
-***************
-*** 254,263 ****
-          /* Ensembl Collection databases have to be matched first. */
-  
-          group     = ajStrNew();
-          swversion = ajStrNew();
-  
-!         ajRegSubI(collectionre, 1, &group);
-!         ajRegSubI(collectionre, 2, &swversion);
-  
-          if(ajStrMatchCaseC(swversion, ensSoftwareVersion))
-          {
---- 254,265 ----
-          /* Ensembl Collection databases have to be matched first. */
-  
-          group     = ajStrNew();
-+         prefix    = ajStrNew();
-          swversion = ajStrNew();
-  
-!         ajRegSubI(collectionre, 1, &prefix);
-!         ajRegSubI(collectionre, 2, &group);
-!         ajRegSubI(collectionre, 3, &swversion);
-  
-          if(ajStrMatchCaseC(swversion, ensSoftwareVersion))
-          {
-***************
-*** 290,295 ****
---- 292,298 ----
-          }
-  
-          ajStrDel(&group);
-+         ajStrDel(&prefix);
-          ajStrDel(&swversion);
-      }
-      else if(ajRegExec(multire, database))
-***************
-*** 417,422 ****
---- 420,428 ----
-  **
-  ** Constructor for an Ensembl Database Adaptor with initial values.
-  **
-+ ** If a database name has not been provided, the database name of the
-+ ** Ensembl Database Connection will be used.
-+ **
-  ** Ensembl Database Adaptors are singleton objects in the sense that a single
-  ** instance of an Ensembl Database Adaptor connected to a particular database
-  ** is sufficient to instantiate any number of Ensembl Object Adaptors from the
-***************
-*** 430,441 ****
-  **
-  ** @cc Bio::EnsEMBL::DBSQL::DBAdaptor::new
-  ** @param [u] dbc [EnsPDatabaseconnection] Ensembl Database Connection
-! ** @param [u] database [AjPStr] Database name (optional). If not provided, the
-! **                              database name in the Database Connection will
-! **                              be used.
-  ** @param [u] species [AjPStr] Species
-! ** @param [u] dbag [EnsEDatabaseadaptorGroup] Ensembl Database Adaptor Group
-! ** enumeration
-  ** @param [r] multi [AjBool] Multiple species
-  ** @param [r] identifier [ajuint] Species identifier
-  **
---- 436,445 ----
-  **
-  ** @cc Bio::EnsEMBL::DBSQL::DBAdaptor::new
-  ** @param [u] dbc [EnsPDatabaseconnection] Ensembl Database Connection
-! ** @param [uN] database [AjPStr] Database name
-  ** @param [u] species [AjPStr] Species
-! ** @param [u] dbag [EnsEDatabaseadaptorGroup]
-! ** Ensembl Database Adaptor Group enumeration
-  ** @param [r] multi [AjBool] Multiple species
-  ** @param [r] identifier [ajuint] Species identifier
-  **
-***************
-*** 555,569 ****
-  
-  /* @section destructors *******************************************************
-  **
-! ** Destruction destroys all internal data structures and frees the
-! ** memory allocated for an Ensembl Database Adaptor object.
-  **
-  ** @fdata [EnsPDatabaseadaptor]
-  **
-! ** @nam3rule Del Destroy (free) an Ensembl Database Adaptor object
-  **
-! ** @argrule * Pdba [EnsPDatabaseadaptor*] Ensembl Database Adaptor
-! **                                        object address
-  **
-  ** @valrule * [void]
-  **
---- 559,573 ----
-  
-  /* @section destructors *******************************************************
-  **
-! ** Destruction destroys all internal data structures and frees the memory
-! ** allocated for an Ensembl Database Adaptor object.
-  **
-  ** @fdata [EnsPDatabaseadaptor]
-  **
-! ** @nam3rule Del Destroy (free) an Ensembl Database Adaptor
-  **
-! ** @argrule * Pdba [EnsPDatabaseadaptor*]
-! ** Ensembl Database Adaptor address
-  **
-  ** @valrule * [void]
-  **
-***************
-*** 586,593 ****
-  ** @see ensExit
-  ** @see ensRegistryExit
-  **
-! ** @param [d] Pdba [EnsPDatabaseadaptor*] Ensembl Database Adaptor
-! **                                        object address
-  **
-  ** @return [void]
-  ** @@
---- 590,596 ----
-  ** @see ensExit
-  ** @see ensRegistryExit
-  **
-! ** @param [d] Pdba [EnsPDatabaseadaptor*] Ensembl Database Adaptor address
-  **
-  ** @return [void]
-  ** @@
-***************
-*** 652,659 ****
-  ** @valrule Databaseconnection [EnsPDatabaseconnection]
-  ** Ensembl Database Connection or NULL
-  ** @valrule Species [AjPStr] Species or NULL
-! ** @valrule Group [EnsEDatabaseadaptorGroup] Ensembl Database Adaptor Group
-! ** enumeration or ensEDatabaseadaptorGroupNULL
-  ** @valrule Multispecies [AjBool] Multiple species or ajFalse
-  ** @valrule Identifier [ajuint] Species identifier or 0
-  **
---- 655,662 ----
-  ** @valrule Databaseconnection [EnsPDatabaseconnection]
-  ** Ensembl Database Connection or NULL
-  ** @valrule Species [AjPStr] Species or NULL
-! ** @valrule Group [EnsEDatabaseadaptorGroup]
-! ** Ensembl Database Adaptor Group enumeration or ensEDatabaseadaptorGroupNULL
-  ** @valrule Multispecies [AjBool] Multiple species or ajFalse
-  ** @valrule Identifier [ajuint] Species identifier or 0
-  **
-***************
-*** 693,700 ****
-  ** @cc Bio::EnsEMBL::DBSQL::DBAdaptor::group
-  ** @param [r] dba [const EnsPDatabaseadaptor] Ensembl Database Adaptor
-  **
-! ** @return [EnsEDatabaseadaptorGroup] Ensembl Database Adaptor Group
-! ** enumeration or ensEDatabaseadaptorGroupNULL
-  ** @@
-  ******************************************************************************/
-  
---- 696,703 ----
-  ** @cc Bio::EnsEMBL::DBSQL::DBAdaptor::group
-  ** @param [r] dba [const EnsPDatabaseadaptor] Ensembl Database Adaptor
-  **
-! ** @return [EnsEDatabaseadaptorGroup]
-! ** Ensembl Database Adaptor Group enumeration or ensEDatabaseadaptorGroupNULL
-  ** @@
-  ******************************************************************************/
-  
-***************
-*** 793,802 ****
-  ** @nam4rule Species Set the species
-  **
-  ** @argrule * dba [EnsPDatabaseadaptor] Ensembl Database Adaptor object
-! ** @argrule Databaseconnection dbc [EnsPDatabaseconnection] Ensembl Database
-! ** Connection
-! ** @argrule Group dbag [EnsEDatabaseadaptorGroup] Ensembl Database Adaptor
-! ** Group enumeration
-  ** @argrule Identifier identifier [ajuint] Species identifier
-  ** @argrule Multispecies multi [AjBool] Multi-species attribute
-  ** @argrule Species species [AjPStr] Species
---- 796,805 ----
-  ** @nam4rule Species Set the species
-  **
-  ** @argrule * dba [EnsPDatabaseadaptor] Ensembl Database Adaptor object
-! ** @argrule Databaseconnection dbc [EnsPDatabaseconnection]
-! ** Ensembl Database Connection
-! ** @argrule Group dbag [EnsEDatabaseadaptorGroup]
-! ** Ensembl Database Adaptor Group enumeration
-  ** @argrule Identifier identifier [ajuint] Species identifier
-  ** @argrule Multispecies multi [AjBool] Multi-species attribute
-  ** @argrule Species species [AjPStr] Species
-diff -c -N --recursive -a EMBOSS-6.4.0old/ajax/ensembl/ensdatabaseadaptor.h EMBOSS-6.4.0/ajax/ensembl/ensdatabaseadaptor.h
-*** EMBOSS-6.4.0old/ajax/ensembl/ensdatabaseadaptor.h	2011-07-06 22:50:28.000000000 +0100
---- EMBOSS-6.4.0/ajax/ensembl/ensdatabaseadaptor.h	2011-09-05 12:23:43.000000000 +0100
-***************
-*** 121,127 ****
-  
-  EnsPDatabaseadaptor ensRegistryGetDatabaseadaptor(
-      EnsEDatabaseadaptorGroup dbag,
-!     const AjPStr alias);
-  
-  EnsPDatabaseadaptor ensRegistryGetReferenceadaptor(EnsPDatabaseadaptor dba);
-  
---- 121,127 ----
-  
-  EnsPDatabaseadaptor ensRegistryGetDatabaseadaptor(
-      EnsEDatabaseadaptorGroup dbag,
-!     AjPStr alias);
-  
-  EnsPDatabaseadaptor ensRegistryGetReferenceadaptor(EnsPDatabaseadaptor dba);
-  
-diff -c -N --recursive -a EMBOSS-6.4.0old/ajax/ensembl/ensregistry.c EMBOSS-6.4.0/ajax/ensembl/ensregistry.c
-*** EMBOSS-6.4.0old/ajax/ensembl/ensregistry.c	2011-07-08 12:43:41.000000000 +0100
---- EMBOSS-6.4.0/ajax/ensembl/ensregistry.c	2011-09-05 12:23:43.000000000 +0100
-***************
-*** 569,576 ****
-      const RegistryPQualityCheck rqc,
-      ajuint level);
-  
-- static AjPStr registryAliasRegister(const AjPStr alias);
-- 
-  static AjBool registryAliasLoadDatabaseconnection(
-      EnsPDatabaseconnection dbc,
-      EnsPDatabaseadaptor dba);
---- 569,574 ----
-***************
-*** 2029,2034 ****
---- 2027,2034 ----
-  
-  AjBool ensRegistryLoadServername(AjPStr servername)
-  {
-+     ajuint dbid = 0;
-+ 
-      AjBool debug      = AJFALSE;
-      AjBool registered = AJFALSE;
-  
-***************
-*** 2037,2042 ****
---- 2037,2045 ----
-      AjPList svrnames = NULL;
-      AjPList dbnames  = NULL;
-  
-+     AjPRegexp dbidre = NULL;
-+ 
-+     AjPStr dbidstr = NULL;
-      AjPStr dbname  = NULL;
-      AjPStr source  = NULL;
-      AjPStr svrname = NULL;
-***************
-*** 2059,2064 ****
---- 2062,2069 ----
-      ** List objects must be re-created and freed for each server.
+--- emboss-6.4.0.orig/ajax/ajaxdb/ajtextdb.c
++++ emboss-6.4.0/ajax/ajaxdb/ajtextdb.c
+@@ -2580,9 +2580,7 @@
+     {
+         field = ajListIterGet(iter);
+ 
+-        if(!nfields)
+-            ajStrAppendK(&textin->Filename, '+');
+-        else
++        if(nfields)
+         {
+             switch(field->Link)
+             {
+@@ -2684,9 +2682,7 @@
+     {
+         field = ajListIterGet(iter);
+ 
+-        if(!nfields)
+-            ajStrAppendK(&textin->Filename, '+');
+-        else
++        if(nfields)
+         {
+             switch(field->Link)
+             {
+--- emboss-6.4.0.orig/ajax/core/ajarch.h
++++ emboss-6.4.0/ajax/core/ajarch.h
+@@ -137,7 +137,7 @@
+ 
+ #ifdef WIN32
+ typedef int ajint;
+-typedef long ajlong;       /* May need to make this long long. */
++typedef long long ajlong;
+ typedef unsigned int ajuint;
+ typedef short ajshort;
+ typedef unsigned short ajushort;
+@@ -159,4 +159,3 @@
+ AJ_END_DECLS
+ 
+ #endif
+-
+--- emboss-6.4.0.orig/ajax/core/ajfeatread.c
++++ emboss-6.4.0/ajax/core/ajfeatread.c
+@@ -3035,7 +3035,8 @@
+     AjPStr  TvString  = NULL;
+     AjPStr  tmptag      = NULL;
+     AjBool  grpset      = ajFalse;
+-    
++    AjBool escapedquote = ajFalse;
++
+     /*ajDebug("featGff3oldProcessTagval '%S'\n",
+       groupfield); */
+     
+@@ -3050,12 +3051,19 @@
       */
-  
-+     dbidre = ajRegCompC("SpeciesIdentifier=(\\d+)");
-+ 
-      value = ajStrNew();
-  
-      svrnames = ajListstrNew();
-***************
-*** 2103,2119 ****
-  
-              registrySourceRegister(source, &registered);
-  
-              ajStrDel(&source);
-  
-              if(registered == ajTrue)
--             {
--                 if(debug)
--                     ajDebug("ensRegistryLoadServername '%S' already "
--                             "registered.\n",
--                             svrname);
-- 
-                  continue;
--             }
-  
-              /*
-              ** Create an Ensembl Database Connection to the AJAX Server for
---- 2108,2122 ----
-  
-              registrySourceRegister(source, &registered);
-  
-+             if((debug == ajTrue) && (registered == ajTrue))
-+                 ajDebug("ensRegistryLoadServername '%S' already "
-+                         "registered via source '%S'.\n",
-+                         svrname, source);
-+ 
-              ajStrDel(&source);
-  
-              if(registered == ajTrue)
-                  continue;
-  
-              /*
-              ** Create an Ensembl Database Connection to the AJAX Server for
-***************
-*** 2150,2189 ****
-  
-                  dba = ensDatabaseadaptorNewUrl(value);
-  
-!                 if((ensDatabaseadaptorGetMultispecies(dba) == ajTrue) &&
-!                    (ensDatabaseadaptorGetIdentifier(dba) == 0))
-                  {
-                      /*
-!                     ** Expand an Ensembl Database Adaptor representing a
-!                     ** collection database into species-specific
-!                     ** Ensembl Database Adaptor objects before registering.
-!                     ** Delete the Ensembl Database Adaptor for the collection.
-                      */
-  
-!                     registryEntryLoadCollection(
-!                         dbc,
-!                         ensDatabaseconnectionGetDatabasename(
-!                             ensDatabaseadaptorGetDatabaseconnection(dba)),
-!                         ensDatabaseadaptorGetGroup(dba));
-  
-!                     ensDatabaseadaptorDel(&dba);
-!                 }
-!                 else
-!                 {
-!                     /*
-!                     ** Register Ensembl Database Adaptor objects for
-!                     ** multi-species and species-specific databases.
-!                     ** Add the species as alias if registered or delete the
-!                     ** Ensembl Database Adaptor if not registered,
-!                     ** successfully.
-!                     */
-  
-!                     if(ensRegistryAddDatabaseadaptor(dba))
-!                         ensRegistryAliasAdd(ensDatabaseadaptorGetSpecies(dba),
-!                                             ensDatabaseadaptorGetSpecies(dba));
-                      else
-                          ensDatabaseadaptorDel(&dba);
-                  }
-              }
-  
-              ajListIterDel(&dbniter);
---- 2153,2216 ----
-  
-                  dba = ensDatabaseadaptorNewUrl(value);
-  
-!                 if(ensDatabaseadaptorGetMultispecies(dba) == ajTrue)
-                  {
-                      /*
-!                     ** For Ensembl Database Adaptors representing collection
-!                     ** databases, the species name needs resetting to the AJAX
-!                     ** database name and the species identifier needs parsing
-!                     ** from the comment field of the AJAX database definition.
-                      */
-  
-!                     ensDatabaseadaptorSetSpecies(dba, dbname);
-  
-!                     ajNamSvrGetdbAttrC(svrname, dbname, "comment", &value);
-  
-!                     if(ajRegExec(dbidre, value))
-!                     {
-!                         dbid    = 0;
-!                         dbidstr = ajStrNew();
-! 
-!                         ajRegSubI(dbidre, 1, &dbidstr);
-! 
-!                         if(ajStrToUint(dbidstr, &dbid))
-!                         {
-!                             ensDatabaseadaptorSetIdentifier(dba, dbid);
-! 
-!                             ajStrDel(&dbidstr);
-!                         }
-!                         else
-!                         {
-!                             ajDebug("ensRegistryLoadServer could not parse a "
-!                                     "valid unsigned integer from the "
-!                                     "'SpeciesIdentifer=INTEGER' expression in "
-!                                     "the comment field of AJAX database "
-!                                     "definition for Ensembl collection "
-!                                     "database '%S'.\n", dbname);
-! 
-!                             ajStrDel(&dbidstr);
-! 
-!                             ensDatabaseadaptorDel(&dba);
-! 
-!                             continue;
-!                         }
-!                     }
-                      else
-+                     {
-+                         ajDebug("ensRegistryLoadServer could not find a "
-+                                 "'SpeciesIdentifer=INTEGER' entry in the "
-+                                 "comment field of AJAX database "
-+                                 "definition for Ensembl collection "
-+                                 "database '%S'.\n", dbname);
-+ 
-                          ensDatabaseadaptorDel(&dba);
-+ 
-+                         continue;
-+                     }
-                  }
-+ 
-+                 if(ensRegistryAddDatabaseadaptor(dba) == ajFalse)
-+                     ensDatabaseadaptorDel(&dba);
-              }
-  
-              ajListIterDel(&dbniter);
-***************
-*** 2196,2201 ****
---- 2223,2230 ----
-      ajListIterDel(&svriter);
-      ajListstrFree(&svrnames);
-  
-+     ajRegFree(&dbidre);
-+ 
-      ajStrDel(&value);
-  
-      if(debug)
-***************
-*** 2370,2439 ****
-  
-  
-  
-- /* @funcstatic registryAliasRegister ******************************************
-- **
-- ** Check, whether an alias name can be resolved directly or after replacing
-- ** underscore characters into a species name. If not, register the alias
-- ** without underscore characters and set the alias with underscores as alias.
-- **
-- ** @param [r] alias [const AjPStr] Alias name
-- **
-- ** @return [AjPStr] Species name or NULL
-- ** @@
-- ******************************************************************************/
-- 
-- static AjPStr registryAliasRegister(const AjPStr alias)
-- {
--     AjPStr species = NULL;
--     AjPStr unalias = NULL;
-- 
--     if(!(alias && ajStrGetLen(alias)))
--         return NULL;
-- 
--     /* Resolve an eventual alias to the species name. */
-- 
--     ensRegistryAliasResolve(alias, &species);
-- 
--     if(!species)
--     {
--         /*
--         ** If this alias has not been registered before, test if it has been
--         ** registered without underscores.
--         */
-- 
--         unalias = ajStrNewS(alias);
-- 
--         /*
--         ** FIXME: Since EMBOSS DBNAMES cannot cope with spaces species names
--         ** must include underscores.
--         ajStrExchangeCC(&unalias, "_", " ");
--         */
-- 
--         ensRegistryAliasResolve(unalias, &species);
-- 
--         if(!species)
--         {
--             /*
--             ** If the alias without underscores has also not been registered
--             ** before, register it as species before registering the one
--             ** with underscores as alias.
--             */
-- 
--             ensRegistryAliasAdd(unalias, unalias);
--             ensRegistryAliasAdd(unalias, alias);
-- 
--             ensRegistryAliasResolve(alias, &species);
--         }
-- 
--         ajStrDel(&unalias);
--     }
-- 
--     return species;
-- }
-- 
-- 
-- 
-- 
-  /* @func ensRegistryAliasAdd **************************************************
-  **
-  ** Add a Registry Alias entry to the Ensembl Registry.
---- 2399,2404 ----
-***************
-*** 2861,2868 ****
-  
-              ajStrAssignS(&species, line);
-  
--             ensRegistryAliasAdd(species, species);
-- 
-              block = ajTrue;
-          }
-      }
---- 2826,2831 ----
-***************
-*** 3387,3394 ****
-          ajSqlcolumnToUint(sqlr, &identifier);
-          ajSqlcolumnToStr(sqlr, &species);
-  
--         ensRegistryAliasAdd(species, species);
-- 
-          dba = ensRegistryNewDatabaseadaptor(dbc,
-                                              dbname,
-                                              species,
---- 3350,3355 ----
-***************
-*** 3699,3705 ****
-      if(!alias)
-          return NULL;
-  
-!     species = registryAliasRegister(alias);
-  
-      dba = ensDatabaseadaptorNewIni(dbc,
-                                     database,
---- 3660,3669 ----
-      if(!alias)
-          return NULL;
-  
-!     ensRegistryAliasResolve(alias, &species);
-! 
-!     if(species == NULL)
-!         species = alias;
-  
-      dba = ensDatabaseadaptorNewIni(dbc,
-                                     database,
-***************
-*** 3801,3807 ****
-      if(!alias)
-          return NULL;
-  
-!     species = registryAliasRegister(alias);
-  
-      rsa = ensDatabaseadaptorNewIni(dbc,
-                                     database,
---- 3765,3774 ----
-      if(!alias)
-          return NULL;
-  
-!     ensRegistryAliasResolve(alias, &species);
-! 
-!     if(species == NULL)
-!         species = alias;
-  
-      rsa = ensDatabaseadaptorNewIni(dbc,
-                                     database,
-***************
-*** 4517,4529 ****
-  **
-  ** @argrule AllDatabaseadaptors dbag [EnsEDatabaseadaptorGroup]
-  ** Ensembl Database Adaptor Group enumeration
-! ** @argrule AllDatabaseadaptors alias [const AjPStr]
-  ** Ensembl Database Adaptor alias name or species name
-  ** @argrule AllDatabaseadaptors dbas [AjPList] AJAX List of
-  ** Ensembl Database Adaptor objects
-  ** @argrule Databaseadaptor dbag [EnsEDatabaseadaptorGroup]
-  ** Ensembl Database Adaptor Group enumeration
-! ** @argrule Databaseadaptor alias [const AjPStr]
-  ** Ensembl Database Adaptor alias name or species name
-  ** @argrule Referenceadaptor dba [EnsPDatabaseadaptor] Ensembl Database Adaptor
-  **
---- 4484,4496 ----
-  **
-  ** @argrule AllDatabaseadaptors dbag [EnsEDatabaseadaptorGroup]
-  ** Ensembl Database Adaptor Group enumeration
-! ** @argrule AllDatabaseadaptors alias [AjPStr]
-  ** Ensembl Database Adaptor alias name or species name
-  ** @argrule AllDatabaseadaptors dbas [AjPList] AJAX List of
-  ** Ensembl Database Adaptor objects
-  ** @argrule Databaseadaptor dbag [EnsEDatabaseadaptorGroup]
-  ** Ensembl Database Adaptor Group enumeration
-! ** @argrule Databaseadaptor alias [AjPStr]
-  ** Ensembl Database Adaptor alias name or species name
-  ** @argrule Referenceadaptor dba [EnsPDatabaseadaptor] Ensembl Database Adaptor
-  **
-***************
-*** 4549,4555 ****
-  **
-  ** @param [uN] dbag [EnsEDatabaseadaptorGroup] Ensembl Database Adaptor Group
-  ** enumeration
-! ** @param [rN] alias [const AjPStr] Ensembl Database Adaptor alias name or
-  ** species name
-  ** @param [u] dbas [AjPList] AJAX List of Ensembl Database Adaptor objects
-  **
---- 4516,4522 ----
-  **
-  ** @param [uN] dbag [EnsEDatabaseadaptorGroup] Ensembl Database Adaptor Group
-  ** enumeration
-! ** @param [rN] alias [AjPStr] Ensembl Database Adaptor alias name or
-  ** species name
-  ** @param [u] dbas [AjPList] AJAX List of Ensembl Database Adaptor objects
-  **
-***************
-*** 4558,4564 ****
-  ******************************************************************************/
-  
-  AjBool ensRegistryGetAllDatabaseadaptors(EnsEDatabaseadaptorGroup dbag,
-!                                          const AjPStr alias,
-                                           AjPList dbas)
-  {
-      void** keyarray = NULL;
---- 4525,4531 ----
-  ******************************************************************************/
-  
-  AjBool ensRegistryGetAllDatabaseadaptors(EnsEDatabaseadaptorGroup dbag,
-!                                          AjPStr alias,
-                                           AjPList dbas)
-  {
-      void** keyarray = NULL;
-***************
-*** 4593,4600 ****
---- 4560,4576 ----
-      if(!dbas)
-          return ajFalse;
-  
-+     /*
-+     ** Resolve an alias name into a valid species name. If the alias did not
-+     ** resolve into a species name, use the alias directly. If an alias was
-+     ** not passed in, it is still NULL, implying all species.
-+     */
-+ 
-      ensRegistryAliasResolve(alias, &species);
-  
-+     if(species == NULL)
-+         species = alias;
-+ 
-      ajTableToarrayKeysValues(registryEntry, &keyarray, &valarray);
-  
-      for(i = 0; keyarray[i]; i++)
-***************
-*** 4761,4767 ****
-  ** @cc Bio::EnsEMBL::Registry::get_DBAdaptor
-  ** @param [u] dbag [EnsEDatabaseadaptorGroup] Ensembl Database Adaptor Group
-  ** enumeration
-! ** @param [r] alias [const AjPStr] Scientific species name or alias name
-  **
-  ** @return [EnsPDatabaseadaptor] Ensembl Database Adaptor or NULL
-  ** @@
---- 4737,4743 ----
-  ** @cc Bio::EnsEMBL::Registry::get_DBAdaptor
-  ** @param [u] dbag [EnsEDatabaseadaptorGroup] Ensembl Database Adaptor Group
-  ** enumeration
-! ** @param [r] alias [AjPStr] Scientific species name or alias name
-  **
-  ** @return [EnsPDatabaseadaptor] Ensembl Database Adaptor or NULL
-  ** @@
-***************
-*** 4769,4775 ****
-  
-  EnsPDatabaseadaptor ensRegistryGetDatabaseadaptor(
-      EnsEDatabaseadaptorGroup dbag,
-!     const AjPStr alias)
-  {
-      AjBool debug = AJFALSE;
-  
---- 4745,4751 ----
-  
-  EnsPDatabaseadaptor ensRegistryGetDatabaseadaptor(
-      EnsEDatabaseadaptorGroup dbag,
-!     AjPStr alias)
-  {
-      AjBool debug = AJFALSE;
-  
-***************
-*** 4797,4804 ****
---- 4773,4788 ----
-      if(!alias)
-          return NULL;
-  
-+     /*
-+     ** Resolve an alias name into a valid species name. If the alias did not
-+     ** resolve into a species name, use the alias directly.
-+     */
-+ 
-      ensRegistryAliasResolve(alias, &species);
-  
-+     if(species == NULL)
-+         species = alias;
-+ 
-      if(debug)
-          ajDebug("ensRegistryGetDatabaseadaptor alias '%S' -> species '%S'\n",
-                  alias, species);
-diff -c -N --recursive -a EMBOSS-6.4.0old/ajax/ensembl/ensregistry.h EMBOSS-6.4.0/ajax/ensembl/ensregistry.h
-*** EMBOSS-6.4.0old/ajax/ensembl/ensregistry.h	2011-05-25 20:55:04.000000000 +0100
---- EMBOSS-6.4.0/ajax/ensembl/ensregistry.h	2011-09-05 12:23:43.000000000 +0100
-***************
-*** 116,122 ****
-  AjBool ensRegistryRemoveDatabaseadaptor(EnsPDatabaseadaptor* Pdba);
-  
-  AjBool ensRegistryGetAllDatabaseadaptors(EnsEDatabaseadaptorGroup dbag,
-!                                          const AjPStr alias,
-                                           AjPList dbas);
-  
-  AjPStr ensRegistryGetStableidentifierprefix(EnsPDatabaseadaptor dba);
---- 116,122 ----
-  AjBool ensRegistryRemoveDatabaseadaptor(EnsPDatabaseadaptor* Pdba);
-  
-  AjBool ensRegistryGetAllDatabaseadaptors(EnsEDatabaseadaptorGroup dbag,
-!                                          AjPStr alias,
-                                           AjPList dbas);
-  
-  AjPStr ensRegistryGetStableidentifierprefix(EnsPDatabaseadaptor dba);
-diff -c -N --recursive -a EMBOSS-6.4.0old/emboss/cacheensembl.c EMBOSS-6.4.0/emboss/cacheensembl.c
-*** EMBOSS-6.4.0old/emboss/cacheensembl.c	2011-07-08 17:29:51.000000000 +0100
---- EMBOSS-6.4.0/emboss/cacheensembl.c	2011-09-05 12:23:43.000000000 +0100
-***************
-*** 181,186 ****
---- 181,191 ----
-                  ajFmtPrintF(outf, "%S\n", dbname);
-  
-              ajFmtPrintF(cachef, "DBNAME %S [\n", dbname);
-+ 
-+             if(ensDatabaseadaptorGetMultispecies(dba) == ajTrue)
-+                 ajFmtPrintF(cachef, "  comment: \"SpeciesIdentifier=%u\"\n",
-+                             ensDatabaseadaptorGetIdentifier(dba));
-+ 
-              ajFmtPrintF(cachef, "  release: \"%s\"\n", ensSoftwareGetVersion());
-              ajFmtPrintF(cachef, "  server:  \"%S\"\n", svrname);
-              ajFmtPrintF(cachef, "  url:     \"%S\"\n", dbcurl);
-diff -c -N --recursive -a EMBOSS-6.4.0old/emboss/cirdna.c EMBOSS-6.4.0/emboss/cirdna.c
-*** EMBOSS-6.4.0old/emboss/cirdna.c	2011-05-16 11:17:10.000000000 +0100
---- EMBOSS-6.4.0/emboss/cirdna.c	2011-09-05 12:23:43.000000000 +0100
-***************
-*** 970,976 ****
-      {
-  	token = ajStrParseC(Name2, ";");
-  	/*ajStrExchangeCC(&Name2, ";", " ");*/
-! 	stringLength = ajGraphicsCalcTextlengthS(token);
-  	xy1 = ajGraphicsCalcCoord(xDraw, yDraw, r2Ticks+postext, Angle);
-  	xy2 = ajGraphicsCalcCoord(xDraw, yDraw, r2Ticks+postext+stringLength,
-  			     Angle);
---- 970,976 ----
-      {
-  	token = ajStrParseC(Name2, ";");
-  	/*ajStrExchangeCC(&Name2, ";", " ");*/
-! 	stringLength = mmtolen * ajGraphicsCalcTextlengthS(token);
-  	xy1 = ajGraphicsCalcCoord(xDraw, yDraw, r2Ticks+postext, Angle);
-  	xy2 = ajGraphicsCalcCoord(xDraw, yDraw, r2Ticks+postext+stringLength,
-  			     Angle);
-***************
-*** 1029,1034 ****
---- 1029,1038 ----
-      float stringHeight;
-      float r1Blocks;
-      float r2Blocks;
-+     float mmtolen;
-+ 
-+     /* radius is 2pi*radius in mm, RealLength in bases */
-+     mmtolen = RealLength/(Radius * (float) 2.0 * (float) 3.1416);
-  
-      r1Blocks = Radius+((float)1.0*BlockHeight/(float)2);
-      r2Blocks = r1Blocks-BlockHeight;
-***************
-*** 1053,1067 ****
-  	ajGraphicsSetFgcolour(Colour);
-      }
-  
-!     stringLength = cirdna_HorTextPileLengthMax(Name2, NumNames);
-      stringHeight = ajGraphicsCalcTextheight();
-!     StartAngle   = cirdna_ComputeAngle(RealLength, (To+From)/2+stringLength/2,
-  				       OriginAngle);
-!     EndAngle = cirdna_ComputeAngle(RealLength, (To+From)/2-stringLength/2,
-  				   OriginAngle);
-  
-      if(ajStrMatchCaseC(PosBlocks, "Out") )
-! 	cirdna_HorTextPile(xDraw, yDraw, r1Blocks+(Adjust*postext), StartAngle,
-  			   EndAngle, Name2, postext, 1);
-      else
-  	cirdna_HorTextPile(xDraw, yDraw,
---- 1057,1073 ----
-  	ajGraphicsSetFgcolour(Colour);
-      }
-  
-!     stringLength = mmtolen * cirdna_HorTextPileLengthMax(Name2, NumNames);
-      stringHeight = ajGraphicsCalcTextheight();
-!     StartAngle   = cirdna_ComputeAngle(RealLength,
-!                                        (To+From)/2 + stringLength/2,
-  				       OriginAngle);
-!     EndAngle = cirdna_ComputeAngle(RealLength,
-!                                    (To+From)/2 - stringLength/2,
-  				   OriginAngle);
-  
-      if(ajStrMatchCaseC(PosBlocks, "Out") )
-! 	cirdna_HorTextPile(xDraw, yDraw, r1Blocks+Adjust*postext, StartAngle,
-  			   EndAngle, Name2, postext, 1);
-      else
-  	cirdna_HorTextPile(xDraw, yDraw,
-diff -c -N --recursive -a EMBOSS-6.4.0old/emboss/data/Efeatures.gff3protein EMBOSS-6.4.0/emboss/data/Efeatures.gff3protein
-*** EMBOSS-6.4.0old/emboss/data/Efeatures.gff3protein	2009-03-06 12:37:43.000000000 +0000
---- EMBOSS-6.4.0/emboss/data/Efeatures.gff3protein	2011-09-05 12:23:43.000000000 +0100
-***************
-*** 193,199 ****
-  
-  # METAL - Binding site for a metal ion.
-  
-! metal_binding SO:0001092 SO:0001092_metal
-  	/note
-  	/comment
-  
---- 193,199 ----
-  
-  # METAL - Binding site for a metal ion.
-  
-! polypeptide_metal_contact SO:0001092 SO:0001092_metal
-  	/note
-  	/comment
-  
-***************
-*** 215,225 ****
-  #                            internal cyclic lactam
-  #SULFATATION                 Generally of tyrosine
-  
-! protein_modification_categorized_by_chemical_process MOD:01156
-! 	/note
-! 	/comment
-! 
-! post_translational_modification SO:0001089
-  	/note
-  	/comment
-  
---- 215,221 ----
-  #                            internal cyclic lactam
-  #SULFATATION                 Generally of tyrosine
-  
-! post_translationally_modified_region MOD:01156 SO:0001089
-  	/note
-  	/comment
-  
-***************
-*** 351,357 ****
-  
-  # TURN -  DSSP secondary structure
-  
-! turn SO:0001128
-  	/note
-  	/comment
-  
---- 347,353 ----
-  
-  # TURN -  DSSP secondary structure
-  
-! polypeptide_turn_motif SO:0001128
-  	/note
-  	/comment
-  
-***************
-*** 371,377 ****
-  #	/comment
-  	/ftid
-  
-! natural_variant SO:0001147 SO:0001147_variant
-  	/note
-  	/comment
-  	/ftid
---- 367,373 ----
-  #	/comment
-  	/ftid
-  
-! natural_variant_site SO:0001147 SO:0001147_variant
-  	/note
-  	/comment
-  	/ftid
-diff -c -N --recursive -a EMBOSS-6.4.0old/emboss/data/Etcode.dat EMBOSS-6.4.0/emboss/data/Etcode.dat
-*** EMBOSS-6.4.0old/emboss/data/Etcode.dat	2003-03-07 09:45:22.000000000 +0000
---- EMBOSS-6.4.0/emboss/data/Etcode.dat	2011-09-05 12:23:43.000000000 +0100
-***************
-*** 22,27 ****
---- 22,28 ----
-  0.25
-  0.23
-  0.21
-+ 0.19
-  0.17
-  0.00
-  #
-diff -c -N --recursive -a EMBOSS-6.4.0old/emboss/dbiflat.c EMBOSS-6.4.0/emboss/dbiflat.c
-*** EMBOSS-6.4.0old/emboss/dbiflat.c	2011-06-23 19:18:45.000000000 +0100
---- EMBOSS-6.4.0/emboss/dbiflat.c	2011-09-05 12:23:43.000000000 +0100
-***************
-*** 91,96 ****
---- 91,100 ----
-  
-  static AjPList* fdl  = NULL;
-  
-+ static AjBool dbiflat_ParseSwiss(AjPFile libr, AjPFile* alistfile,
-+                                  AjBool systemsort, AjPStr* fields,
-+                                  ajint* maxFieldLen, ajuint* countfield,
-+                                  ajint *dpos, AjPStr* myid, AjPList* acl);
-  static AjBool dbiflat_ParseEmbl(AjPFile libr, AjPFile* alistfile,
-  				AjBool systemsort, AjPStr* fields,
-  				ajint* maxFieldLen, ajuint* countfield,
-***************
-*** 135,141 ****
-  static DbiflatOParser parser[] =
-  {
-      {"EMBL", dbiflat_ParseEmbl},
-!     {"SWISS", dbiflat_ParseEmbl},
-      {"GB", dbiflat_ParseGenbank},
-      {"REFSEQ", dbiflat_ParseRefseq},
-      {NULL, NULL}
---- 139,145 ----
-  static DbiflatOParser parser[] =
-  {
-      {"EMBL", dbiflat_ParseEmbl},
-!     {"SWISS", dbiflat_ParseSwiss},
-      {"GB", dbiflat_ParseGenbank},
-      {"REFSEQ", dbiflat_ParseRefseq},
-      {NULL, NULL}
-***************
-*** 596,601 ****
---- 600,984 ----
-  
-  
-  
-+ /* @funcstatic dbiflat_ParseSwiss *********************************************
-+ **
-+ ** Parse the ID, accession from a SwissProt or UniProtKB entry.
-+ **
-+ ** Reads to the end of the entry and then returns.
-+ **
-+ ** @param [u] libr [AjPFile] Input database file
-+ ** @param [u] alistfile [AjPFile*] field data files array
-+ ** @param [r] systemsort [AjBool] If ajTrue use system sort, else internal sort
-+ ** @param [w] fields [AjPStr*] Fields required
-+ ** @param [w] maxFieldLen [ajint*] Maximum token length for each field
-+ ** @param [w] countfield [ajuint*] Number of tokens for each field
-+ ** @param [w] dpos [ajint*] Byte offset
-+ ** @param [w] myid [AjPStr*] ID
-+ ** @param [w] myfdl [AjPList*] Lists of field values
-+ ** @return [AjBool] ajTrue on success.
-+ ** @@
-+ ******************************************************************************/
-+ 
-+ static AjBool dbiflat_ParseSwiss(AjPFile libr, AjPFile* alistfile,
-+                                  AjBool systemsort, AjPStr* fields,
-+                                  ajint* maxFieldLen, ajuint* countfield,
-+                                  ajint* dpos, AjPStr* myid,
-+                                  AjPList* myfdl)
-+ {
-+     AjPStr tmpacnum = NULL;
-+     char* fd;
-+     ajint lineType;
-+     static ajint numFields;
-+     static ajint accfield = -1;
-+     static ajint desfield = -1;
-+     static ajint keyfield = -1;
-+     static ajint taxfield = -1;
-+     static ajint svnfield = -1;
-+     static AjBool reset = AJTRUE;
-+     AjBool svndone = ajFalse;
-+     AjBool done = ajFalse;
-+     ajint i;
-+     ajint lo;
-+     ajint hi;
-+     ajint fieldwidth;
-+     AjPStr tmpac = NULL;
-+     AjPStr format = NULL;
-+     AjPStr prefix = NULL;
-+     const char* p;
-+     const char* q;
-+     const char* swissprefix[] = {
-+         "RecName: ", "AltName: ", "SubName: ",
-+         "Includes:", "Contains:", "Flags: ",
-+         "Full=", "Short=", "EC=",
-+         "Allergen=", "Biotech=", "CD_antigen=", "INN=",
-+         NULL
-+     };
-+     ajuint j;
-+ 
-+     if(!fields)
-+     {
-+ 	reset = ajTrue;
-+ 	accfield = svnfield = desfield = keyfield = taxfield = -1;
-+ 	return ajFalse;
-+     }
-+ 
-+     if(reset)
-+     {
-+ 	numFields = 0;
-+ 	while(fields[numFields])
-+ 	{
-+ 	    countfield[numFields]=0;
-+ 	    if(ajStrMatchCaseC(fields[numFields], "acc"))
-+ 		accfield=numFields;
-+ 	    else if(ajStrMatchCaseC(fields[numFields], "sv"))
-+ 		svnfield=numFields;
-+ 	    else if(ajStrMatchCaseC(fields[numFields], "des"))
-+ 		desfield=numFields;
-+ 	    else if(ajStrMatchCaseC(fields[numFields], "key"))
-+ 		keyfield=numFields;
-+ 	    else if(ajStrMatchCaseC(fields[numFields], "org"))
-+ 		taxfield=numFields;
-+ 	    else
-+ 		ajWarn("EMBL parsing unknown field '%S' ignored",
-+ 		       fields[numFields]);
-+ 	    numFields++;
-+ 	}
-+ 
-+ 	reset = ajFalse;
-+     }
-+ 
-+     if(!regEmblType)
-+ 	regEmblType = ajRegCompC("^([A-Z][A-Z]) +");
-+ 
-+     if(!regEmblAcc)
-+ 	regEmblAcc = ajRegCompC("([A-Za-z0-9-]+)");
-+ 
-+     if(!regEmblWrd)
-+ 	regEmblWrd = ajRegCompC("([A-Za-z0-9_]+)");
-+ 
-+     if(!regEmblVer)
-+ 	regEmblVer = ajRegCompC("([A-Za-z0-9_.]+)");
-+ 
-+     if(!regEmblPhr)
-+ 	regEmblPhr = ajRegCompC(" *([^;.\n\r]+)");
-+ 
-+     if(!regEmblTax)
-+ 	regEmblTax = ajRegCompC(" *([^;.\n\r()]+)");
-+ 
-+     if(!regEmblId)
-+ 	regEmblId = ajRegCompC("^ID   ([^\\s;]+)(;\\s+SV\\s+(\\d+))?");
-+ 
-+     if(!regEmblEnd)
-+ 	regEmblEnd = ajRegCompC("^//");
-+ 
-+     *dpos = (ajint) ajFileResetPos(libr); /* Lossy cast */
-+ 
-+     while(ajReadline(libr, &rline))
-+     {
-+ 	if(ajRegExec(regEmblEnd, rline))
-+ 	{
-+ 	    done = ajTrue;
-+ 	    break;
-+ 	}
-+ 
-+ 	if(ajRegExec(regEmblType, rline))
-+ 	{
-+ 	    ajRegSubI(regEmblType, 1, &typStr);
-+ 	    if(ajStrMatchC(typStr, "ID"))
-+ 		lineType = FLATTYPE_ID;
-+ 	    else if(ajStrMatchC(typStr, "SV") ||
-+ 		    ajStrMatchC(typStr, "IV")) /* emblcds database */
-+ 		lineType = FLATTYPE_VER;
-+ 	    else if(ajStrMatchC(typStr, "AC") ||
-+ 		    ajStrMatchC(typStr, "PA")) /* emblcds database */
-+ 		lineType = FLATTYPE_ACC;
-+ 	    else if(ajStrMatchC(typStr, "DE"))
-+ 		lineType = FLATTYPE_DES;
-+ 	    else if(ajStrMatchC(typStr, "KW"))
-+ 		lineType = FLATTYPE_KEY;
-+ 	    else if(ajStrMatchC(typStr, "OS"))
-+ 		lineType = FLATTYPE_TAX;
-+ 	    else if(ajStrMatchC(typStr, "OC"))
-+ 		lineType = FLATTYPE_TAX;
-+ 	    else
-+ 		lineType=FLATTYPE_OTHER;
-+ 
-+ 	    if(lineType != FLATTYPE_OTHER)
-+ 		ajRegPost(regEmblType, &tmpline);
-+ 	}
-+ 	else
-+ 	    lineType = FLATTYPE_OTHER;
-+ 
-+ 	if(lineType == FLATTYPE_ID)
-+ 	{
-+ 	    ajRegExec(regEmblId, rline);
-+ 	    ajRegSubI(regEmblId, 1, myid);
-+ 	    ajStrFmtUpper(myid);
-+ 	    ajDebug("++id '%S'\n", *myid);
-+ 	    ajRegSubI(regEmblId, 3, &tmpfd);
-+ 	    if(svnfield >= 0 && ajStrGetLen(tmpfd))
-+ 	    {
-+ 		ajStrFmtUpper(&tmpfd);
-+ 		ajStrInsertK(&tmpfd, 0, '.');
-+ 		ajStrInsertS(&tmpfd, 0, *myid);
-+ 		/*ajDebug("++sv '%S'\n", tmpfd);*/
-+ 		embDbiMaxlen(&tmpfd, &maxFieldLen[svnfield]);
-+ 
-+ 		countfield[svnfield]++;
-+ 		if(systemsort)
-+ 		    ajFmtPrintF(alistfile[svnfield], "%S %S\n", *myid, tmpfd);
-+ 		else
-+ 		{
-+ 		    fd = ajCharNewS(tmpfd);
-+ 		    ajListPushAppend(myfdl[svnfield], fd);
-+ 		}
-+ 		svndone = ajTrue;
-+ 	    }
-+ 	    continue;
-+ 	}
-+ 
-+ 	if(lineType == FLATTYPE_ACC && accfield >= 0)
-+ 	{
-+ 	    while(ajRegExec(regEmblAcc, tmpline))
-+ 	    {
-+ 		ajRegSubI(regEmblAcc, 1, &tmpfd);
-+ 		ajStrFmtUpper(&tmpfd);
-+ 		/*ajDebug("++acc '%S'\n", tmpfd);*/
-+ 
-+ 		if(!tmpacnum)
-+ 		    ajStrAssignS(&tmpacnum, tmpfd);
-+ 
-+ 		if((p=strchr(MAJSTRGETPTR(tmpfd),(int)'-')))
-+ 		{
-+ 		    q = p;
-+ 		    while(isdigit((int)*(--q)));
-+ 		    ++q;
-+ 		    ajStrAssignSubC(&tmpstr,q,0,(ajint)(p-q-1));
-+ 		    ajStrToInt(tmpstr,&lo);
-+ 		    fieldwidth = (ajint) (p-q);
-+ 		    ajFmtPrintS(&format,"%%S%%0%dd",fieldwidth);
-+ 
-+ 		    ++p;
-+ 		    q = p;
-+ 		    while(!isdigit((int)*q))
-+ 			++q;
-+ 		    sscanf(q,"%d",&hi);
-+ 		    ajStrAssignSubC(&prefix,p,0,(ajint)(q-p-1));
-+ 	    
-+ 		    if(systemsort)
-+ 		    {
-+ 			for(i=lo;i<=hi;++i)
-+ 			{
-+ 			    ajFmtPrintS(&tmpac,MAJSTRGETPTR(format),prefix,i);
-+ 			    embDbiMaxlen(&tmpac, &maxFieldLen[accfield]);
-+ 			    countfield[accfield]++;
-+ 			    ajFmtPrintF(alistfile[accfield],
-+ 					"%S %S\n", *myid, tmpac);
-+ 			}
-+ 			ajStrDel(&tmpac);
-+ 		    }
-+ 		    else
-+ 		    {
-+ 			for(i=lo;i<=hi;++i)
-+ 			{
-+ 			    ajFmtPrintS(&tmpac,MAJSTRGETPTR(format),prefix,i);
-+ 			    embDbiMaxlen(&tmpac, &maxFieldLen[accfield]);
-+ 			    countfield[accfield]++;
-+ 			    fd = ajCharNewS(tmpac);
-+ 			    ajListPushAppend(myfdl[accfield], fd);
-+ 			}
-+ 			ajStrDel(&tmpac);
-+ 		    }
-+ 		    ajStrDel(&format);
-+ 		    ajStrDel(&prefix);
-+ 		}
-+ 		else {
-+ 		    embDbiMaxlen(&tmpfd, &maxFieldLen[accfield]);
-+ 
-+ 		    countfield[accfield]++;
-+ 		    if(systemsort)
-+ 			ajFmtPrintF(alistfile[accfield],
-+ 				    "%S %S\n", *myid, tmpfd);
-+ 		    else
-+ 		    {
-+ 			fd = ajCharNewS(tmpfd);
-+ 			ajListPushAppend(myfdl[accfield], fd);
-+ 		    }
-+ 		}
-+ 		ajRegPost(regEmblAcc, &tmpstr);
-+                 ajStrAssignS(&tmpline, tmpstr);
-+ 	    }
-+ 	    continue;
-+ 	}
-+ 	else if(lineType == FLATTYPE_DES && desfield >= 0)
-+ 	{
-+             ajStrTrimWhiteStart(&tmpline);
-+             for(j=0; swissprefix[j]; j++)
-+             {
-+                 if(ajStrPrefixC(tmpline, swissprefix[j]))
-+                     ajStrCutStart(&tmpline, strlen(swissprefix[j]));
-+             }
-+ 	    while(ajRegExec(regEmblWrd, tmpline))
-+ 	    {
-+ 		ajRegSubI(regEmblWrd, 1, &tmpfd);
-+ 		ajStrFmtUpper(&tmpfd);
-+ 		/*ajDebug("++des '%S'\n", tmpfd);*/
-+ 		embDbiMaxlen(&tmpfd, &maxFieldLen[desfield]);
-+ 
-+ 		countfield[desfield]++;
-+ 		if(systemsort)
-+ 		    ajFmtPrintF(alistfile[desfield], "%S %S\n", *myid, tmpfd);
-+ 		else
-+ 		{
-+ 		    fd = ajCharNewS(tmpfd);
-+ 		    ajListPushAppend(myfdl[desfield], fd);
-+ 		}
-+ 		ajRegPost(regEmblWrd, &tmpstr);
-+                 ajStrAssignS(&tmpline, tmpstr);
-+ 	    }
-+ 	    continue;
-+ 	}
-+ 	else if(lineType == FLATTYPE_VER && svnfield >= 0)
-+ 	{
-+ 	    while(ajRegExec(regEmblVer, tmpline))
-+ 	    {
-+ 		ajRegSubI(regEmblVer, 1, &tmpfd);
-+ 		ajStrFmtUpper(&tmpfd);
-+ 		/*ajDebug("++sv '%S'\n", tmpfd);*/
-+ 		embDbiMaxlen(&tmpfd, &maxFieldLen[svnfield]);
-+ 
-+ 		countfield[svnfield]++;
-+ 		if(systemsort)
-+ 		    ajFmtPrintF(alistfile[svnfield], "%S %S\n", *myid, tmpfd);
-+ 		else
-+ 		{
-+ 		    fd = ajCharNewS(tmpfd);
-+ 		    ajListPushAppend(myfdl[svnfield], fd);
-+ 		}
-+ 		ajRegPost(regEmblVer, &tmpstr);	
-+                 ajStrAssignS(&tmpline, tmpstr);
-+             }
-+ 	    svndone = ajTrue;
-+ 	    continue;
-+ 	}
-+ 	else if(lineType == FLATTYPE_KEY && keyfield >= 0)
-+ 	{
-+ 	    while(ajRegExec(regEmblPhr, tmpline))
-+ 	    {
-+ 		ajRegSubI(regEmblPhr, 1, &tmpfd);
-+ 		ajRegPost(regEmblPhr, &tmpstr);
-+                 ajStrAssignS(&tmpline, tmpstr);
-+ 		ajStrTrimWhiteEnd(&tmpfd);
-+ 		if(!ajStrGetLen(tmpfd))
-+ 		    continue;
-+ 		ajStrFmtUpper(&tmpfd);
-+ 		/*ajDebug("++key '%S'\n", tmpfd);*/
-+ 		embDbiMaxlen(&tmpfd, &maxFieldLen[keyfield]);
-+ 
-+ 		countfield[keyfield]++;
-+ 		if(systemsort)
-+ 		    ajFmtPrintF(alistfile[keyfield], "%S %S\n", *myid, tmpfd);
-+ 		else
-+ 		{
-+ 		    fd = ajCharNewS(tmpfd);
-+ 		    ajListPushAppend(myfdl[keyfield], fd);
-+ 		}
-+ 	    }
-+ 	    continue;
-+ 	}
-+ 	else if(lineType == FLATTYPE_TAX && taxfield >= 0)
-+ 	{
-+ 	    while(ajRegExec(regEmblTax, tmpline))
-+ 	    {
-+ 		ajRegSubI(regEmblTax, 1, &tmpfd);
-+ 		ajRegPost(regEmblTax, &tmpstr);
-+                 ajStrAssignS(&tmpline, tmpstr);
-+ 		ajStrFmtUpper(&tmpfd);
-+ 		ajStrTrimWhiteEnd(&tmpfd);
-+ 		if(!ajStrGetLen(tmpfd))
-+ 		    continue;
-+ 		/*ajDebug("++tax '%S'\n", tmpfd);*/
-+ 		embDbiMaxlen(&tmpfd, &maxFieldLen[taxfield]);
-+ 
-+ 		countfield[taxfield]++;
-+ 		if(systemsort)
-+ 		    ajFmtPrintF(alistfile[taxfield], "%S %S\n", *myid, tmpfd);
-+ 		else
-+ 		{
-+ 		    fd = ajCharNewS(tmpfd);
-+ 		    ajListPushAppend(myfdl[taxfield], fd);
-+ 		}
-+ 	    }
-+ 	    continue;
-+ 	}
-+     }
-+ 
-+     if(!done)
-+ 	return ajFalse;
-+ 
-+     if(svnfield >= 0 && !svndone && tmpacnum)
-+     {
-+ 	ajFmtPrintS(&tmpfd, "%S.0", tmpacnum);
-+ 	embDbiMaxlen(&tmpfd, &maxFieldLen[svnfield]);
-+ 
-+ 	countfield[svnfield]++;
-+ 	if(systemsort)
-+ 	    ajFmtPrintF(alistfile[svnfield], "%S %S\n", *myid, tmpfd);
-+ 	else
-+ 	{
-+ 	    fd = ajCharNewS(tmpfd);
-+ 	    ajListPushAppend(myfdl[svnfield], fd);
-+ 	}
-+     }
-+ 
-+     ajStrDel(&tmpacnum);
-+ 
-+     return ajTrue;
-+ }
-+ 
-+ 
-+ 
-+ 
-  /* @funcstatic dbiflat_ParseEmbl **********************************************
-  **
-  ** Parse the ID, accession from an EMBL entry.
-diff -c -N --recursive -a EMBOSS-6.4.0old/emboss/dbxflat.c EMBOSS-6.4.0/emboss/dbxflat.c
-*** EMBOSS-6.4.0old/emboss/dbxflat.c	2011-06-23 19:18:45.000000000 +0100
---- EMBOSS-6.4.0/emboss/dbxflat.c	2011-09-05 12:23:43.000000000 +0100
-***************
-*** 32,37 ****
---- 32,38 ----
-  static AjBool dbxflat_ParseFastq(EmbPBtreeEntry entry, AjPFile inf);
-  static AjBool dbxflat_ParseEmbl(EmbPBtreeEntry entry, AjPFile inf);
-  static AjBool dbxflat_ParseGenbank(EmbPBtreeEntry entry, AjPFile inf);
-+ static AjBool dbxflat_ParseSwiss(EmbPBtreeEntry entry, AjPFile inf);
-  
-  static AjBool dbxflat_NextEntry(EmbPBtreeEntry entry, AjPFile inf);
-  
-***************
-*** 76,82 ****
-  static DbxflatOParser parser[] =
-  {
-      {"EMBL",   dbxflat_ParseEmbl},
-!     {"SWISS",  dbxflat_ParseEmbl},
-      {"GB",     dbxflat_ParseGenbank},
-      {"REFSEQ", dbxflat_ParseGenbank},
-      {"FASTQ",  dbxflat_ParseFastq},
---- 77,83 ----
-  static DbxflatOParser parser[] =
-  {
-      {"EMBL",   dbxflat_ParseEmbl},
-!     {"SWISS",  dbxflat_ParseSwiss},
-      {"GB",     dbxflat_ParseGenbank},
-      {"REFSEQ", dbxflat_ParseGenbank},
-      {"FASTQ",  dbxflat_ParseFastq},
-***************
-*** 716,721 ****
---- 717,817 ----
-  
-  
-  
-+ /* @funcstatic dbxflat_ParseSwiss *********************************************
-+ **
-+ ** Parse the ID, accession from a SwissProt or UniProtKB entry.
-+ **
-+ ** Reads to the end of the entry and then returns.
-+ **
-+ ** @param [w] entry [EmbPBtreeEntry] entry
-+ ** @param [u] inf [AjPFile] Input file
-+ **
-+ ** @return [AjBool] ajTrue on success.
-+ ** @@
-+ ******************************************************************************/
-+ 
-+ static AjBool dbxflat_ParseSwiss(EmbPBtreeEntry entry, AjPFile inf)
-+ {
-+     AjPStr line = NULL;
-+     ajlong pos  = 0L;
-+     const char* swissprefix[] = {
-+         "RecName: ", "AltName: ", "SubName: ",
-+         "Includes:", "Contains:", "Flags: ",
-+         "Full=", "Short=", "EC=",
-+         "Allergen=", "Biotech=", "CD_antigen=", "INN=",
-+         NULL
-+     };
-+     ajuint i;
-+ 
-+     if(!dbxflat_wrdexp)
-+ 	dbxflat_wrdexp = ajRegCompC("([A-Za-z0-9_-]+)");
-+ 
-+     line = ajStrNewC("");
-+     
-+     while(!ajStrPrefixC(line,"//"))
-+     {
-+ 	pos = ajFileResetPos(inf);
-+ 	
-+ 	if(!ajReadlineTrim(inf,&line))
-+ 	{
-+ 	    ajStrDel(&line);
-+ 	    return ajFalse;
-+ 	}
-+ 	if(ajStrPrefixC(line,"ID"))
-+ 	{
-+ 	    entry->fpos = pos;
-+ 	    ajFmtScanS(line,"%*S%S",&entry->id);
-+ 	    ajStrTrimEndC(&entry->id, ";");
-+ /*
-+ 	    ++global;
-+ 	    printf("%d. %s\n",global,ajStrGetPtr(entry->id));
-+ */
-+ 	    if(svfield)
-+ 		embBtreeEmblSV(line,svfield->data);
-+ 	}
-+ 
-+ 
-+ 	if(svfield)
-+ 	    if(ajStrPrefixC(line,"SV") ||
-+ 	       ajStrPrefixC(line,"IV"))	/* emblcds database format */
-+ 		embBtreeEmblAC(line,svfield->data);
-+ 
-+ 	if(accfield)
-+ 	    if(ajStrPrefixC(line,"AC") ||
-+ 	       ajStrPrefixC(line,"PA"))	/* emblcds database format */
-+ 		embBtreeEmblAC(line,accfield->data);
-+ 	
-+ 	if(keyfield)
-+ 	    if(ajStrPrefixC(line,"KW"))
-+ 		embBtreeEmblKW(line,keyfield->data,keyfield->len);
-+ 
-+ 	if(desfield)
-+ 	    if(ajStrPrefixC(line,"DE"))
-+             {
-+                 ajStrCutStart(&line, 5);
-+                 ajStrTrimWhiteStart(&line);
-+                 for(i=0; swissprefix[i]; i++)
-+                 {
-+                     if(ajStrPrefixC(line, swissprefix[i]))
-+                         ajStrCutStart(&line, strlen(swissprefix[i]));
-+                 }
-+ 		embBtreeParseField(line,dbxflat_wrdexp, desfield);
-+             }
-+         
-+ 	if(orgfield)
-+ 	    if(ajStrPrefixC(line,"OC") || ajStrPrefixC(line,"OS"))
-+ 		embBtreeEmblTX(line,orgfield->data,orgfield->len);
-+     }
-+     
-+ 
-+     ajStrDel(&line);
-+     
-+     return ajTrue;
-+ }
-+ 
-+ 
-+ 
-+ 
-  /* @funcstatic dbxflat_NextEntry ********************************************
-  **
-  ** Parse the next entry from a flatfile
-diff -c -N --recursive -a EMBOSS-6.4.0old/emboss/dbxresource.c EMBOSS-6.4.0/emboss/dbxresource.c
-*** EMBOSS-6.4.0old/emboss/dbxresource.c	2011-06-23 19:18:45.000000000 +0100
---- EMBOSS-6.4.0/emboss/dbxresource.c	2011-09-05 12:23:43.000000000 +0100
-***************
-*** 535,540 ****
---- 535,553 ----
-          if(urlfield && !ajStrMatchC(rest, "None"))
-              embBtreeParseField(rest, dbxresource_wrdexp, urlfield);
-      }
-+     else if(ajStrMatchC(name, "NARCat"))
-+     {
-+         if(catfield && !ajStrMatchC(rest, "None"))
-+         {
-+             handle = ajStrTokenNewC(rest, "|");
-+             while(ajStrTokenNextParse(&handle, &token))
-+             {
-+                 ajStrRemoveWhiteExcess(&token);
-+                 ajListstrPush(catfield->data,ajStrNewS(token));
-+             }
-+             ajStrTokenDel(&handle);
-+         }
-+     }
-      else if(ajStrSuffixC(name, "Cat"))
-      {
-          if(catfield && !ajStrMatchC(rest, "None"))
-diff -c -N --recursive -a EMBOSS-6.4.0old/emboss/drfinddata.c EMBOSS-6.4.0/emboss/drfinddata.c
-*** EMBOSS-6.4.0old/emboss/drfinddata.c	2011-05-25 10:10:32.000000000 +0100
---- EMBOSS-6.4.0/emboss/drfinddata.c	2011-09-05 12:23:43.000000000 +0100
-***************
-*** 155,162 ****
-                          {
-                              if(!ajTableMatchS(foundtable, resource->Id))
-                              {
-!                                 ajDebug("drcat id '%S' category '%S'\n",
-!                                        resource->Id, resource->Cat);
-                                  ajResourceoutWrite(outfile, resource);
-                                  ajTablePut(foundtable, ajStrNewS(resource->Id),
-                                             (void *) 1);
---- 155,163 ----
-                          {
-                              if(!ajTableMatchS(foundtable, resource->Id))
-                              {
-!                                 ajDebug("drcat id '%S' categories %u\n",
-!                                         resource->Id,
-!                                         ajListGetLength(resource->Cat));
-                                  ajResourceoutWrite(outfile, resource);
-                                  ajTablePut(foundtable, ajStrNewS(resource->Id),
-                                             (void *) 1);
-diff -c -N --recursive -a EMBOSS-6.4.0old/emboss/drfindformat.c EMBOSS-6.4.0/emboss/drfindformat.c
-*** EMBOSS-6.4.0old/emboss/drfindformat.c	2011-05-25 13:41:47.000000000 +0100
---- EMBOSS-6.4.0/emboss/drfindformat.c	2011-09-05 12:23:43.000000000 +0100
-***************
-*** 152,159 ****
-                          {
-                              if(!ajTableMatchS(foundtable, resource->Id))
-                              {
-!                                 ajDebug("drcat id '%S' category '%S'\n",
-!                                        resource->Id, resource->Cat);
-                                  ajResourceoutWrite(outfile, resource);
-                                  ajTablePut(foundtable, ajStrNewS(resource->Id),
-                                             (void *) 1);
---- 152,160 ----
-                          {
-                              if(!ajTableMatchS(foundtable, resource->Id))
-                              {
-!                                 ajDebug("drcat id '%S' categories %u\n",
-!                                         resource->Id,
-!                                         ajListGetLength(resource->Cat));
-                                  ajResourceoutWrite(outfile, resource);
-                                  ajTablePut(foundtable, ajStrNewS(resource->Id),
-                                             (void *) 1);
-diff -c -N --recursive -a EMBOSS-6.4.0old/emboss/drfindid.c EMBOSS-6.4.0/emboss/drfindid.c
-*** EMBOSS-6.4.0old/emboss/drfindid.c	2011-05-25 13:41:47.000000000 +0100
---- EMBOSS-6.4.0/emboss/drfindid.c	2011-09-05 12:23:43.000000000 +0100
-***************
-*** 152,159 ****
-                          {
-                              if(!ajTableMatchS(foundtable, resource->Id))
-                              {
-!                                 ajDebug("drcat id '%S' category '%S'\n",
-!                                        resource->Id, resource->Cat);
-                                  ajResourceoutWrite(outfile, resource);
-                                  ajTablePut(foundtable, ajStrNewS(resource->Id),
-                                             (void *) 1);
---- 152,160 ----
-                          {
-                              if(!ajTableMatchS(foundtable, resource->Id))
-                              {
-!                                 ajDebug("drcat id '%S' categories %u\n",
-!                                         resource->Id,
-!                                         ajListGetLength(resource->Cat));
-                                  ajResourceoutWrite(outfile, resource);
-                                  ajTablePut(foundtable, ajStrNewS(resource->Id),
-                                             (void *) 1);
-diff -c -N --recursive -a EMBOSS-6.4.0old/emboss/drfindresource.c EMBOSS-6.4.0/emboss/drfindresource.c
-*** EMBOSS-6.4.0old/emboss/drfindresource.c	2011-04-12 17:30:58.000000000 +0100
---- EMBOSS-6.4.0/emboss/drfindresource.c	2011-09-05 12:23:43.000000000 +0100
-***************
-*** 162,170 ****
-                          {
-                              if(!ajTableMatchS(foundtable, resource->Id))
-                              {
-!                                 ajDebug("drcat id '%S' category '%S'\n",
-!                                        resource->Id, resource->Cat);
-!                                 ajResourceoutWrite(outfile, resource);
-                                  ajTablePut(foundtable, ajStrNewS(resource->Id),
-                                             (void *) 1);
-                              }
---- 162,171 ----
-                          {
-                              if(!ajTableMatchS(foundtable, resource->Id))
-                              {
-!                                 ajDebug("drcat id '%S' categories %u\n",
-!                                         resource->Id,
-!                                         ajListGetLength(resource->Cat));
-!                                  ajResourceoutWrite(outfile, resource);
-                                  ajTablePut(foundtable, ajStrNewS(resource->Id),
-                                             (void *) 1);
-                              }
-diff -c -N --recursive -a EMBOSS-6.4.0old/emboss/server.ensemblgenomes EMBOSS-6.4.0/emboss/server.ensemblgenomes
-*** EMBOSS-6.4.0old/emboss/server.ensemblgenomes	2011-07-06 23:14:17.000000000 +0100
---- EMBOSS-6.4.0/emboss/server.ensemblgenomes	2011-09-05 12:23:43.000000000 +0100
-***************
-*** 1,4 ****
-! # server.ensemblgenomes 2011-07-05 00:00:00
-  # Automatically generated by cacheensembl for server 'ensemblgenomes'.
-  
-  DBNAME acyrthosiphon_pisum [
---- 1,4 ----
-! # server.ensemblgenomes 2011-07-27 00:00:00
-  # Automatically generated by cacheensembl for server 'ensemblgenomes'.
-  
-  DBNAME acyrthosiphon_pisum [
-***************
-*** 194,199 ****
---- 194,200 ----
-  ALIAS 15368 brachypodium_distachyon
-  
-  DBNAME b_afzelii [
-+   comment: "SpeciesIdentifier=4"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/borrelia_collection_core_9_62_1a"
-***************
-*** 202,207 ****
---- 203,209 ----
-  ALIAS 390236 b_afzelii
-  
-  DBNAME b_amyloliquefaciens [
-+   comment: "SpeciesIdentifier=2"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 210,215 ****
---- 212,218 ----
-  ALIAS 326423 b_amyloliquefaciens
-  
-  DBNAME b_anthracis_a0248 [
-+   comment: "SpeciesIdentifier=25"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 218,223 ****
---- 221,227 ----
-  ALIAS 592021 b_anthracis_a0248
-  
-  DBNAME b_anthracis_ames [
-+   comment: "SpeciesIdentifier=3"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 226,231 ****
---- 230,236 ----
-  ALIAS 198094 b_anthracis_ames
-  
-  DBNAME b_anthracis_ames_ancestor [
-+   comment: "SpeciesIdentifier=4"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 234,239 ****
---- 239,245 ----
-  ALIAS 261594 b_anthracis_ames_ancestor
-  
-  DBNAME b_anthracis_cdc_684 [
-+   comment: "SpeciesIdentifier=24"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 242,247 ****
---- 248,254 ----
-  ALIAS 568206 b_anthracis_cdc_684
-  
-  DBNAME b_anthracis_sterne [
-+   comment: "SpeciesIdentifier=5"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 250,255 ****
---- 257,263 ----
-  ALIAS 260799 b_anthracis_sterne
-  
-  DBNAME b_aphidicola_5a [
-+   comment: "SpeciesIdentifier=2"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/buchnera_collection_core_9_62_1a"
-***************
-*** 258,263 ****
---- 266,272 ----
-  ALIAS 563178 b_aphidicola_5a
-  
-  DBNAME b_aphidicola_baizongia [
-+   comment: "SpeciesIdentifier=5"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/buchnera_collection_core_9_62_1a"
-***************
-*** 266,271 ****
---- 275,281 ----
-  ALIAS 224915 b_aphidicola_baizongia
-  
-  DBNAME b_aphidicola_cinara [
-+   comment: "SpeciesIdentifier=3"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/buchnera_collection_core_9_62_1a"
-***************
-*** 274,279 ****
---- 284,290 ----
-  ALIAS 372461 b_aphidicola_cinara
-  
-  DBNAME b_aphidicola_schizaphis [
-+   comment: "SpeciesIdentifier=1"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/buchnera_collection_core_9_62_1a"
-***************
-*** 282,287 ****
---- 293,299 ----
-  ALIAS 198804 b_aphidicola_schizaphis
-  
-  DBNAME b_aphidicola_tokyo_1998 [
-+   comment: "SpeciesIdentifier=6"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/buchnera_collection_core_9_62_1a"
-***************
-*** 290,295 ****
---- 302,308 ----
-  ALIAS 107806 b_aphidicola_tokyo_1998
-  
-  DBNAME b_aphidicola_tuc7 [
-+   comment: "SpeciesIdentifier=4"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/buchnera_collection_core_9_62_1a"
-***************
-*** 298,303 ****
---- 311,317 ----
-  ALIAS 561501 b_aphidicola_tuc7
-  
-  DBNAME b_burgdorferi_dsm_4680 [
-+   comment: "SpeciesIdentifier=8"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/borrelia_collection_core_9_62_1a"
-***************
-*** 306,311 ****
---- 320,326 ----
-  ALIAS 224326 b_burgdorferi_dsm_4680
-  
-  DBNAME b_burgdorferi_zs7 [
-+   comment: "SpeciesIdentifier=3"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/borrelia_collection_core_9_62_1a"
-***************
-*** 314,319 ****
---- 329,335 ----
-  ALIAS 445985 b_burgdorferi_zs7
-  
-  DBNAME b_cereus_03bb102 [
-+   comment: "SpeciesIdentifier=20"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 322,327 ****
---- 338,344 ----
-  ALIAS 572264 b_cereus_03bb102
-  
-  DBNAME b_cereus_172560w [
-+   comment: "SpeciesIdentifier=50"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 330,335 ****
---- 347,353 ----
-  ALIAS 526967 b_cereus_172560w
-  
-  DBNAME b_cereus_95_8201 [
-+   comment: "SpeciesIdentifier=36"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 338,343 ****
---- 356,362 ----
-  ALIAS 526979 b_cereus_95_8201
-  
-  DBNAME b_cereus_ah1271 [
-+   comment: "SpeciesIdentifier=71"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 346,351 ****
---- 365,371 ----
-  ALIAS 526992 b_cereus_ah1271
-  
-  DBNAME b_cereus_ah1272 [
-+   comment: "SpeciesIdentifier=53"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 354,359 ****
---- 374,380 ----
-  ALIAS 526993 b_cereus_ah1272
-  
-  DBNAME b_cereus_ah1273 [
-+   comment: "SpeciesIdentifier=43"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 362,367 ****
---- 383,389 ----
-  ALIAS 526994 b_cereus_ah1273
-  
-  DBNAME b_cereus_ah187 [
-+   comment: "SpeciesIdentifier=19"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 370,375 ****
---- 392,398 ----
-  ALIAS 405534 b_cereus_ah187
-  
-  DBNAME b_cereus_ah603 [
-+   comment: "SpeciesIdentifier=49"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 378,383 ****
---- 401,407 ----
-  ALIAS 526990 b_cereus_ah603
-  
-  DBNAME b_cereus_ah621 [
-+   comment: "SpeciesIdentifier=46"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 386,391 ****
---- 410,416 ----
-  ALIAS 526972 b_cereus_ah621
-  
-  DBNAME b_cereus_ah676 [
-+   comment: "SpeciesIdentifier=38"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 394,399 ****
---- 419,425 ----
-  ALIAS 526991 b_cereus_ah676
-  
-  DBNAME b_cereus_ah820 [
-+   comment: "SpeciesIdentifier=18"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 402,407 ****
---- 428,434 ----
-  ALIAS 405535 b_cereus_ah820
-  
-  DBNAME b_cereus_atcc_10876 [
-+   comment: "SpeciesIdentifier=70"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 410,415 ****
---- 437,443 ----
-  ALIAS 526980 b_cereus_atcc_10876
-  
-  DBNAME b_cereus_atcc_10987 [
-+   comment: "SpeciesIdentifier=6"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 418,423 ****
---- 446,452 ----
-  ALIAS 222523 b_cereus_atcc_10987
-  
-  DBNAME b_cereus_atcc_14579 [
-+   comment: "SpeciesIdentifier=7"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 426,431 ****
---- 455,461 ----
-  ALIAS 226900 b_cereus_atcc_14579
-  
-  DBNAME b_cereus_atcc_4342 [
-+   comment: "SpeciesIdentifier=72"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 434,439 ****
---- 464,470 ----
-  ALIAS 526977 b_cereus_atcc_4342
-  
-  DBNAME b_cereus_b4264 [
-+   comment: "SpeciesIdentifier=23"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 442,447 ****
---- 473,479 ----
-  ALIAS 405532 b_cereus_b4264
-  
-  DBNAME b_cereus_bdrd_bcer4 [
-+   comment: "SpeciesIdentifier=62"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 450,455 ****
---- 482,488 ----
-  ALIAS 526978 b_cereus_bdrd_bcer4
-  
-  DBNAME b_cereus_bdrd_st196 [
-+   comment: "SpeciesIdentifier=34"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 458,463 ****
---- 491,497 ----
-  ALIAS 526976 b_cereus_bdrd_st196
-  
-  DBNAME b_cereus_bdrd_st24 [
-+   comment: "SpeciesIdentifier=37"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 466,471 ****
---- 500,506 ----
-  ALIAS 526974 b_cereus_bdrd_st24
-  
-  DBNAME b_cereus_bdrd_st26 [
-+   comment: "SpeciesIdentifier=39"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 474,479 ****
---- 509,515 ----
-  ALIAS 526975 b_cereus_bdrd_st26
-  
-  DBNAME b_cereus_bgsc_6e1 [
-+   comment: "SpeciesIdentifier=67"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 482,487 ****
---- 518,524 ----
-  ALIAS 526970 b_cereus_bgsc_6e1
-  
-  DBNAME b_cereus_cytotoxis [
-+   comment: "SpeciesIdentifier=8"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 490,495 ****
---- 527,533 ----
-  ALIAS 315749 b_cereus_cytotoxis
-  
-  DBNAME b_cereus_f65185 [
-+   comment: "SpeciesIdentifier=30"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 498,503 ****
---- 536,542 ----
-  ALIAS 526989 b_cereus_f65185
-  
-  DBNAME b_cereus_g9842 [
-+   comment: "SpeciesIdentifier=22"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 506,511 ****
---- 545,551 ----
-  ALIAS 405531 b_cereus_g9842
-  
-  DBNAME b_cereus_m1293 [
-+   comment: "SpeciesIdentifier=40"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 514,519 ****
---- 554,560 ----
-  ALIAS 526973 b_cereus_m1293
-  
-  DBNAME b_cereus_mm1550 [
-+   comment: "SpeciesIdentifier=65"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 522,527 ****
---- 563,569 ----
-  ALIAS 526969 b_cereus_mm1550
-  
-  DBNAME b_cereus_mm3 [
-+   comment: "SpeciesIdentifier=52"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 530,535 ****
---- 572,578 ----
-  ALIAS 526971 b_cereus_mm3
-  
-  DBNAME b_cereus_q1 [
-+   comment: "SpeciesIdentifier=21"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 538,543 ****
---- 581,587 ----
-  ALIAS 361100 b_cereus_q1
-  
-  DBNAME b_cereus_r309803 [
-+   comment: "SpeciesIdentifier=33"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 546,551 ****
---- 590,596 ----
-  ALIAS 526968 b_cereus_r309803
-  
-  DBNAME b_cereus_rock1_15 [
-+   comment: "SpeciesIdentifier=42"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 554,559 ****
---- 599,605 ----
-  ALIAS 526982 b_cereus_rock1_15
-  
-  DBNAME b_cereus_rock1_3 [
-+   comment: "SpeciesIdentifier=78"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 562,567 ****
---- 608,614 ----
-  ALIAS 526981 b_cereus_rock1_3
-  
-  DBNAME b_cereus_rock3_28 [
-+   comment: "SpeciesIdentifier=57"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 570,575 ****
---- 617,623 ----
-  ALIAS 526983 b_cereus_rock3_28
-  
-  DBNAME b_cereus_rock3_29 [
-+   comment: "SpeciesIdentifier=51"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 578,583 ****
---- 626,632 ----
-  ALIAS 526984 b_cereus_rock3_29
-  
-  DBNAME b_cereus_rock3_42 [
-+   comment: "SpeciesIdentifier=77"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 586,591 ****
---- 635,641 ----
-  ALIAS 526985 b_cereus_rock3_42
-  
-  DBNAME b_cereus_rock3_44 [
-+   comment: "SpeciesIdentifier=48"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 594,599 ****
---- 644,650 ----
-  ALIAS 526986 b_cereus_rock3_44
-  
-  DBNAME b_cereus_rock4_18 [
-+   comment: "SpeciesIdentifier=55"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 602,607 ****
---- 653,659 ----
-  ALIAS 526988 b_cereus_rock4_18
-  
-  DBNAME b_cereus_rock4_2 [
-+   comment: "SpeciesIdentifier=76"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 610,615 ****
---- 662,668 ----
-  ALIAS 526987 b_cereus_rock4_2
-  
-  DBNAME b_cereus_var_anthracis [
-+   comment: "SpeciesIdentifier=69"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 618,623 ****
---- 671,677 ----
-  ALIAS 637380 b_cereus_var_anthracis
-  
-  DBNAME b_cereus_zk [
-+   comment: "SpeciesIdentifier=9"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 626,631 ****
---- 680,686 ----
-  ALIAS 288681 b_cereus_zk
-  
-  DBNAME b_clausii [
-+   comment: "SpeciesIdentifier=10"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 634,639 ****
---- 689,695 ----
-  ALIAS 66692 b_clausii
-  
-  DBNAME b_duttonii [
-+   comment: "SpeciesIdentifier=2"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/borrelia_collection_core_9_62_1a"
-***************
-*** 642,647 ****
---- 698,704 ----
-  ALIAS 412419 b_duttonii
-  
-  DBNAME b_garinii [
-+   comment: "SpeciesIdentifier=7"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/borrelia_collection_core_9_62_1a"
-***************
-*** 650,655 ****
---- 707,713 ----
-  ALIAS 290434 b_garinii
-  
-  DBNAME b_halodurans [
-+   comment: "SpeciesIdentifier=11"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 658,663 ****
---- 716,722 ----
-  ALIAS 272558 b_halodurans
-  
-  DBNAME b_hermsii [
-+   comment: "SpeciesIdentifier=6"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/borrelia_collection_core_9_62_1a"
-***************
-*** 666,671 ****
---- 725,731 ----
-  ALIAS 314723 b_hermsii
-  
-  DBNAME b_licheniformis_goettingen [
-+   comment: "SpeciesIdentifier=12"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 674,679 ****
---- 734,740 ----
-  ALIAS 279010 b_licheniformis_goettingen
-  
-  DBNAME b_licheniformis_novozymes [
-+   comment: "SpeciesIdentifier=13"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 681,686 ****
---- 742,748 ----
-  
-  
-  DBNAME b_megaterium_atcc_12872 [
-+   comment: "SpeciesIdentifier=73"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 689,694 ****
---- 751,757 ----
-  ALIAS 545693 b_megaterium_atcc_12872
-  
-  DBNAME b_megaterium_dsm_319 [
-+   comment: "SpeciesIdentifier=80"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 697,702 ****
---- 760,766 ----
-  ALIAS 592022 b_megaterium_dsm_319
-  
-  DBNAME b_mycoides_dsm_2048 [
-+   comment: "SpeciesIdentifier=47"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 705,710 ****
---- 769,775 ----
-  ALIAS 526997 b_mycoides_dsm_2048
-  
-  DBNAME b_mycoides_rock1_4 [
-+   comment: "SpeciesIdentifier=28"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 713,718 ****
---- 778,784 ----
-  ALIAS 526998 b_mycoides_rock1_4
-  
-  DBNAME b_mycoides_rock3_17 [
-+   comment: "SpeciesIdentifier=59"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 721,726 ****
---- 787,793 ----
-  ALIAS 526999 b_mycoides_rock3_17
-  
-  DBNAME b_pseudofirmus [
-+   comment: "SpeciesIdentifier=54"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 729,734 ****
---- 796,802 ----
-  ALIAS 398511 b_pseudofirmus
-  
-  DBNAME b_pseudomycoides [
-+   comment: "SpeciesIdentifier=58"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 737,742 ****
---- 805,811 ----
-  ALIAS 527000 b_pseudomycoides
-  
-  DBNAME b_pumilus [
-+   comment: "SpeciesIdentifier=14"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 745,750 ****
---- 814,820 ----
-  ALIAS 315750 b_pumilus
-  
-  DBNAME b_recurrentis [
-+   comment: "SpeciesIdentifier=5"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/borrelia_collection_core_9_62_1a"
-***************
-*** 753,758 ****
---- 823,829 ----
-  ALIAS 412418 b_recurrentis
-  
-  DBNAME b_selenitireducens [
-+   comment: "SpeciesIdentifier=32"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 761,766 ****
---- 832,838 ----
-  ALIAS 439292 b_selenitireducens
-  
-  DBNAME b_subtilis [
-+   comment: "SpeciesIdentifier=1"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 769,774 ****
---- 841,847 ----
-  ALIAS 224308 b_subtilis
-  
-  DBNAME b_thuringiensis [
-+   comment: "SpeciesIdentifier=15"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 777,782 ****
---- 850,856 ----
-  ALIAS 412694 b_thuringiensis
-  
-  DBNAME b_thuringiensis_atcc_10792 [
-+   comment: "SpeciesIdentifier=41"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 785,790 ****
---- 859,865 ----
-  ALIAS 527031 b_thuringiensis_atcc_10792
-  
-  DBNAME b_thuringiensis_bgsc_4aj1 [
-+   comment: "SpeciesIdentifier=75"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 793,798 ****
---- 868,874 ----
-  ALIAS 527022 b_thuringiensis_bgsc_4aj1
-  
-  DBNAME b_thuringiensis_bgsc_4aw1_andalous [
-+   comment: "SpeciesIdentifier=56"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 801,806 ****
---- 877,883 ----
-  ALIAS 527032 b_thuringiensis_bgsc_4aw1_andalous
-  
-  DBNAME b_thuringiensis_bgsc_4ba1_pondicheri [
-+   comment: "SpeciesIdentifier=29"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 809,814 ****
---- 886,892 ----
-  ALIAS 527029 b_thuringiensis_bgsc_4ba1_pondicheri
-  
-  DBNAME b_thuringiensis_bgsc_4bd1_huazhong [
-+   comment: "SpeciesIdentifier=31"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 817,822 ****
---- 895,901 ----
-  ALIAS 527030 b_thuringiensis_bgsc_4bd1_huazhong
-  
-  DBNAME b_thuringiensis_bgsc_4cc1_pulsiensis [
-+   comment: "SpeciesIdentifier=35"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 825,830 ****
---- 904,910 ----
-  ALIAS 527028 b_thuringiensis_bgsc_4cc1_pulsiensis
-  
-  DBNAME b_thuringiensis_bgsc_4y1_tochigiensis [
-+   comment: "SpeciesIdentifier=44"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 833,838 ****
---- 913,919 ----
-  ALIAS 527024 b_thuringiensis_bgsc_4y1_tochigiensis
-  
-  DBNAME b_thuringiensis_bmb171 [
-+   comment: "SpeciesIdentifier=68"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 841,846 ****
---- 922,928 ----
-  ALIAS 714359 b_thuringiensis_bmb171
-  
-  DBNAME b_thuringiensis_bt407 [
-+   comment: "SpeciesIdentifier=26"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 849,854 ****
---- 931,937 ----
-  ALIAS 527021 b_thuringiensis_bt407
-  
-  DBNAME b_thuringiensis_ibl200 [
-+   comment: "SpeciesIdentifier=27"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 857,862 ****
---- 940,946 ----
-  ALIAS 527019 b_thuringiensis_ibl200
-  
-  DBNAME b_thuringiensis_ibl4222 [
-+   comment: "SpeciesIdentifier=64"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 865,870 ****
---- 949,955 ----
-  ALIAS 527020 b_thuringiensis_ibl4222
-  
-  DBNAME b_thuringiensis_konkukian [
-+   comment: "SpeciesIdentifier=16"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 873,878 ****
---- 958,964 ----
-  ALIAS 281309 b_thuringiensis_konkukian
-  
-  DBNAME b_thuringiensis_t01001 [
-+   comment: "SpeciesIdentifier=60"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 881,886 ****
---- 967,973 ----
-  ALIAS 527025 b_thuringiensis_t01001
-  
-  DBNAME b_thuringiensis_t03a001_kurstaki [
-+   comment: "SpeciesIdentifier=63"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 889,894 ****
---- 976,982 ----
-  ALIAS 527023 b_thuringiensis_t03a001_kurstaki
-  
-  DBNAME b_thuringiensis_t04001_sotto [
-+   comment: "SpeciesIdentifier=61"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 897,902 ****
---- 985,991 ----
-  ALIAS 527026 b_thuringiensis_t04001_sotto
-  
-  DBNAME b_thuringiensis_t13001_pakistani [
-+   comment: "SpeciesIdentifier=45"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 905,910 ****
---- 994,1000 ----
-  ALIAS 527027 b_thuringiensis_t13001_pakistani
-  
-  DBNAME b_turicatae [
-+   comment: "SpeciesIdentifier=1"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/borrelia_collection_core_9_62_1a"
-***************
-*** 913,918 ****
---- 1003,1009 ----
-  ALIAS 314724 b_turicatae
-  
-  DBNAME b_tusciae [
-+   comment: "SpeciesIdentifier=79"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 921,926 ****
---- 1012,1018 ----
-  ALIAS 562970 b_tusciae
-  
-  DBNAME b_weihenstephanensis [
-+   comment: "SpeciesIdentifier=17"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
-***************
-*** 1221,1226 ****
---- 1313,1319 ----
-  ]
-  
-  DBNAME e_coli_042 [
-+   comment: "SpeciesIdentifier=43"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1229,1240 ****
---- 1322,1335 ----
-  ALIAS 216592 e_coli_042
-  
-  DBNAME e_coli_042_funcgen [
-+   comment: "SpeciesIdentifier=43"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME e_coli_55989 [
-+   comment: "SpeciesIdentifier=26"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1243,1254 ****
---- 1338,1351 ----
-  ALIAS 585055 e_coli_55989
-  
-  DBNAME e_coli_55989_funcgen [
-+   comment: "SpeciesIdentifier=26"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME e_coli_atcc_27325 [
-+   comment: "SpeciesIdentifier=4"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1257,1268 ****
---- 1354,1367 ----
-  ALIAS 316407 e_coli_atcc_27325
-  
-  DBNAME e_coli_atcc_27325_funcgen [
-+   comment: "SpeciesIdentifier=4"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME e_coli_atcc_33849 [
-+   comment: "SpeciesIdentifier=39"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1271,1282 ****
---- 1370,1383 ----
-  ALIAS 536056 e_coli_atcc_33849
-  
-  DBNAME e_coli_atcc_33849_funcgen [
-+   comment: "SpeciesIdentifier=39"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME e_coli_atcc_8739 [
-+   comment: "SpeciesIdentifier=2"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1285,1296 ****
---- 1386,1399 ----
-  ALIAS 481805 e_coli_atcc_8739
-  
-  DBNAME e_coli_atcc_8739_funcgen [
-+   comment: "SpeciesIdentifier=2"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME e_coli_bl21 [
-+   comment: "SpeciesIdentifier=32"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1299,1310 ****
---- 1402,1415 ----
-  ALIAS 511693 e_coli_bl21
-  
-  DBNAME e_coli_bl21_funcgen [
-+   comment: "SpeciesIdentifier=32"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME e_coli_bl21_de3_jgi [
-+   comment: "SpeciesIdentifier=40"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1313,1324 ****
---- 1418,1431 ----
-  ALIAS 866768 e_coli_bl21_de3_jgi
-  
-  DBNAME e_coli_bl21_de3_jgi_funcgen [
-+   comment: "SpeciesIdentifier=40"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME e_coli_bl21_de3_kribb [
-+   comment: "SpeciesIdentifier=38"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1327,1338 ****
---- 1434,1447 ----
-  ALIAS 469008 e_coli_bl21_de3_kribb
-  
-  DBNAME e_coli_bl21_de3_kribb_funcgen [
-+   comment: "SpeciesIdentifier=38"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME e_coli_bw2952 [
-+   comment: "SpeciesIdentifier=31"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1341,1352 ****
---- 1450,1463 ----
-  ALIAS 595496 e_coli_bw2952
-  
-  DBNAME e_coli_bw2952_funcgen [
-+   comment: "SpeciesIdentifier=31"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME e_coli_dh10b [
-+   comment: "SpeciesIdentifier=3"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1355,1366 ****
---- 1466,1479 ----
-  ALIAS 316385 e_coli_dh10b
-  
-  DBNAME e_coli_dh10b_funcgen [
-+   comment: "SpeciesIdentifier=3"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME e_coli_ec4115 [
-+   comment: "SpeciesIdentifier=7"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1369,1380 ****
---- 1482,1495 ----
-  ALIAS 444450 e_coli_ec4115
-  
-  DBNAME e_coli_ec4115_funcgen [
-+   comment: "SpeciesIdentifier=7"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME e_coli_edl933 [
-+   comment: "SpeciesIdentifier=6"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1383,1394 ****
---- 1498,1511 ----
-  ALIAS 155864 e_coli_edl933
-  
-  DBNAME e_coli_edl933_funcgen [
-+   comment: "SpeciesIdentifier=6"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME e_coli_k12 [
-+   comment: "SpeciesIdentifier=1"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1397,1408 ****
---- 1514,1527 ----
-  ALIAS 511145 e_coli_k12
-  
-  DBNAME e_coli_k12_funcgen [
-+   comment: "SpeciesIdentifier=1"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME e_coli_o103_h2 [
-+   comment: "SpeciesIdentifier=36"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1411,1422 ****
---- 1530,1543 ----
-  ALIAS 585395 e_coli_o103_h2
-  
-  DBNAME e_coli_o103_h2_funcgen [
-+   comment: "SpeciesIdentifier=36"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME e_coli_o111_h_ [
-+   comment: "SpeciesIdentifier=37"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1425,1436 ****
---- 1546,1559 ----
-  ALIAS 585396 e_coli_o111_h_
-  
-  DBNAME e_coli_o111_h__funcgen [
-+   comment: "SpeciesIdentifier=37"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME e_coli_o127_h6 [
-+   comment: "SpeciesIdentifier=23"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1439,1450 ****
---- 1562,1575 ----
-  ALIAS 574521 e_coli_o127_h6
-  
-  DBNAME e_coli_o127_h6_funcgen [
-+   comment: "SpeciesIdentifier=23"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME e_coli_o139_h28 [
-+   comment: "SpeciesIdentifier=5"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1453,1464 ****
---- 1578,1591 ----
-  ALIAS 331111 e_coli_o139_h28
-  
-  DBNAME e_coli_o139_h28_funcgen [
-+   comment: "SpeciesIdentifier=5"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME e_coli_o157_h7_tw14588 [
-+   comment: "SpeciesIdentifier=45"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1467,1478 ****
---- 1594,1607 ----
-  ALIAS 502346 e_coli_o157_h7_tw14588
-  
-  DBNAME e_coli_o157_h7_tw14588_funcgen [
-+   comment: "SpeciesIdentifier=45"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME e_coli_o17_k52_h18 [
-+   comment: "SpeciesIdentifier=24"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1481,1492 ****
---- 1610,1623 ----
-  ALIAS 585056 e_coli_o17_k52_h18
-  
-  DBNAME e_coli_o17_k52_h18_funcgen [
-+   comment: "SpeciesIdentifier=24"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME e_coli_o18_k1_h7 [
-+   comment: "SpeciesIdentifier=46"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1495,1506 ****
---- 1626,1639 ----
-  ALIAS 714962 e_coli_o18_k1_h7
-  
-  DBNAME e_coli_o18_k1_h7_funcgen [
-+   comment: "SpeciesIdentifier=46"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME e_coli_o1_k1_apec [
-+   comment: "SpeciesIdentifier=8"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1509,1520 ****
---- 1642,1655 ----
-  ALIAS 405955 e_coli_o1_k1_apec
-  
-  DBNAME e_coli_o1_k1_apec_funcgen [
-+   comment: "SpeciesIdentifier=8"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME e_coli_o26_h11 [
-+   comment: "SpeciesIdentifier=35"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1523,1534 ****
---- 1658,1671 ----
-  ALIAS 573235 e_coli_o26_h11
-  
-  DBNAME e_coli_o26_h11_funcgen [
-+   comment: "SpeciesIdentifier=35"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME e_coli_o45_k1 [
-+   comment: "SpeciesIdentifier=28"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1537,1548 ****
---- 1674,1687 ----
-  ALIAS 585035 e_coli_o45_k1
-  
-  DBNAME e_coli_o45_k1_funcgen [
-+   comment: "SpeciesIdentifier=28"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME e_coli_o55_h7 [
-+   comment: "SpeciesIdentifier=44"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1551,1562 ****
---- 1690,1703 ----
-  ALIAS 701177 e_coli_o55_h7
-  
-  DBNAME e_coli_o55_h7_funcgen [
-+   comment: "SpeciesIdentifier=44"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME e_coli_o6 [
-+   comment: "SpeciesIdentifier=9"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1565,1576 ****
---- 1706,1719 ----
-  ALIAS 217992 e_coli_o6
-  
-  DBNAME e_coli_o6_funcgen [
-+   comment: "SpeciesIdentifier=9"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME e_coli_o6_k15_h31 [
-+   comment: "SpeciesIdentifier=10"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1579,1590 ****
---- 1722,1735 ----
-  ALIAS 362663 e_coli_o6_k15_h31
-  
-  DBNAME e_coli_o6_k15_h31_funcgen [
-+   comment: "SpeciesIdentifier=10"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME e_coli_o7_k1 [
-+   comment: "SpeciesIdentifier=30"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1593,1604 ****
---- 1738,1751 ----
-  ALIAS 585057 e_coli_o7_k1
-  
-  DBNAME e_coli_o7_k1_funcgen [
-+   comment: "SpeciesIdentifier=30"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME e_coli_o8 [
-+   comment: "SpeciesIdentifier=27"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1607,1618 ****
---- 1754,1767 ----
-  ALIAS 585034 e_coli_o8
-  
-  DBNAME e_coli_o8_funcgen [
-+   comment: "SpeciesIdentifier=27"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME e_coli_o81 [
-+   comment: "SpeciesIdentifier=29"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1621,1632 ****
---- 1770,1783 ----
-  ALIAS 585397 e_coli_o81
-  
-  DBNAME e_coli_o81_funcgen [
-+   comment: "SpeciesIdentifier=29"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME e_coli_o9_h4 [
-+   comment: "SpeciesIdentifier=11"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1635,1646 ****
---- 1786,1799 ----
-  ALIAS 331112 e_coli_o9_h4
-  
-  DBNAME e_coli_o9_h4_funcgen [
-+   comment: "SpeciesIdentifier=11"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME e_coli_rel606 [
-+   comment: "SpeciesIdentifier=33"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1649,1660 ****
---- 1802,1815 ----
-  ALIAS 413997 e_coli_rel606
-  
-  DBNAME e_coli_rel606_funcgen [
-+   comment: "SpeciesIdentifier=33"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME e_coli_sakai [
-+   comment: "SpeciesIdentifier=12"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1663,1674 ****
---- 1818,1831 ----
-  ALIAS 386585 e_coli_sakai
-  
-  DBNAME e_coli_sakai_funcgen [
-+   comment: "SpeciesIdentifier=12"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME e_coli_se11 [
-+   comment: "SpeciesIdentifier=22"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1677,1688 ****
---- 1834,1847 ----
-  ALIAS 409438 e_coli_se11
-  
-  DBNAME e_coli_se11_funcgen [
-+   comment: "SpeciesIdentifier=22"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME e_coli_se15 [
-+   comment: "SpeciesIdentifier=42"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1691,1702 ****
---- 1850,1863 ----
-  ALIAS 431946 e_coli_se15
-  
-  DBNAME e_coli_se15_funcgen [
-+   comment: "SpeciesIdentifier=42"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME e_coli_sms_3_5 [
-+   comment: "SpeciesIdentifier=13"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1705,1716 ****
---- 1866,1879 ----
-  ALIAS 439855 e_coli_sms_3_5
-  
-  DBNAME e_coli_sms_3_5_funcgen [
-+   comment: "SpeciesIdentifier=13"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME e_coli_tw14359 [
-+   comment: "SpeciesIdentifier=34"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1719,1730 ****
---- 1882,1895 ----
-  ALIAS 544404 e_coli_tw14359
-  
-  DBNAME e_coli_tw14359_funcgen [
-+   comment: "SpeciesIdentifier=34"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME e_coli_uti89 [
-+   comment: "SpeciesIdentifier=14"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1733,1744 ****
---- 1898,1911 ----
-  ALIAS 364106 e_coli_uti89
-  
-  DBNAME e_coli_uti89_funcgen [
-+   comment: "SpeciesIdentifier=14"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME e_fergusonii [
-+   comment: "SpeciesIdentifier=25"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 1747,1752 ****
---- 1914,1920 ----
-  ALIAS 585054 e_fergusonii
-  
-  DBNAME e_fergusonii_funcgen [
-+   comment: "SpeciesIdentifier=25"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-***************
-*** 1843,1848 ****
---- 2011,2017 ----
-  ]
-  
-  DBNAME mycobacterium_sp_jls [
-+   comment: "SpeciesIdentifier=11"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
-***************
-*** 1851,1856 ****
---- 2020,2026 ----
-  ALIAS 164757 mycobacterium_sp_jls
-  
-  DBNAME mycobacterium_sp_kms [
-+   comment: "SpeciesIdentifier=12"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
-***************
-*** 1859,1864 ****
---- 2029,2035 ----
-  ALIAS 189918 mycobacterium_sp_kms
-  
-  DBNAME mycobacterium_sp_mcs [
-+   comment: "SpeciesIdentifier=13"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
-***************
-*** 1867,1872 ****
---- 2038,2044 ----
-  ALIAS 164756 mycobacterium_sp_mcs
-  
-  DBNAME m_abscessus [
-+   comment: "SpeciesIdentifier=2"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
-***************
-*** 1875,1880 ****
---- 2047,2053 ----
-  ALIAS 36809 m_abscessus
-  
-  DBNAME m_avium [
-+   comment: "SpeciesIdentifier=3"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
-***************
-*** 1883,1888 ****
---- 2056,2062 ----
-  ALIAS 243243 m_avium
-  
-  DBNAME m_bovis_af2122_97 [
-+   comment: "SpeciesIdentifier=4"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
-***************
-*** 1891,1896 ****
---- 2065,2071 ----
-  ALIAS 233413 m_bovis_af2122_97
-  
-  DBNAME m_bovis_pasteur_1173p2 [
-+   comment: "SpeciesIdentifier=5"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
-***************
-*** 1899,1904 ****
---- 2074,2080 ----
-  ALIAS 410289 m_bovis_pasteur_1173p2
-  
-  DBNAME m_bovis_tokyo_172 [
-+   comment: "SpeciesIdentifier=19"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
-***************
-*** 1907,1912 ****
---- 2083,2089 ----
-  ALIAS 561275 m_bovis_tokyo_172
-  
-  DBNAME m_gilvum [
-+   comment: "SpeciesIdentifier=6"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
-***************
-*** 1915,1920 ****
---- 2092,2098 ----
-  ALIAS 350054 m_gilvum
-  
-  DBNAME m_leprae_br4923 [
-+   comment: "SpeciesIdentifier=18"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
-***************
-*** 1923,1928 ****
---- 2101,2107 ----
-  ALIAS 561304 m_leprae_br4923
-  
-  DBNAME m_leprae_tn [
-+   comment: "SpeciesIdentifier=7"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
-***************
-*** 1931,1936 ****
---- 2110,2116 ----
-  ALIAS 272631 m_leprae_tn
-  
-  DBNAME m_marinum [
-+   comment: "SpeciesIdentifier=8"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
-***************
-*** 1939,1944 ****
---- 2119,2125 ----
-  ALIAS 216594 m_marinum
-  
-  DBNAME m_paratuberculosis [
-+   comment: "SpeciesIdentifier=9"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
-***************
-*** 1947,1952 ****
---- 2128,2134 ----
-  ALIAS 262316 m_paratuberculosis
-  
-  DBNAME m_smegmatis [
-+   comment: "SpeciesIdentifier=10"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
-***************
-*** 1955,1960 ****
---- 2137,2143 ----
-  ALIAS 246196 m_smegmatis
-  
-  DBNAME m_tuberculosis_atcc_25177 [
-+   comment: "SpeciesIdentifier=14"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
-***************
-*** 1963,1968 ****
---- 2146,2152 ----
-  ALIAS 419947 m_tuberculosis_atcc_25177
-  
-  DBNAME m_tuberculosis_cdc1551 [
-+   comment: "SpeciesIdentifier=15"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
-***************
-*** 1971,1976 ****
---- 2155,2161 ----
-  ALIAS 83331 m_tuberculosis_cdc1551
-  
-  DBNAME m_tuberculosis_h37rv [
-+   comment: "SpeciesIdentifier=1"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
-***************
-*** 1979,1984 ****
---- 2164,2170 ----
-  ALIAS 83332 m_tuberculosis_h37rv
-  
-  DBNAME m_tuberculosis_kzn_1435 [
-+   comment: "SpeciesIdentifier=21"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
-***************
-*** 1987,1992 ****
---- 2173,2179 ----
-  ALIAS 478434 m_tuberculosis_kzn_1435
-  
-  DBNAME m_ulcerans [
-+   comment: "SpeciesIdentifier=16"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
-***************
-*** 1995,2000 ****
---- 2182,2188 ----
-  ALIAS 362242 m_ulcerans
-  
-  DBNAME m_vanbaalenii [
-+   comment: "SpeciesIdentifier=17"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
-***************
-*** 2030,2035 ****
---- 2218,2224 ----
-  ALIAS n_crassa neurospora_crassa
-  
-  DBNAME n_gonorrhoeae_atcc_700825 [
-+   comment: "SpeciesIdentifier=2"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/neisseria_collection_core_9_62_3a"
-***************
-*** 2038,2043 ****
---- 2227,2233 ----
-  ALIAS 242231 n_gonorrhoeae_atcc_700825
-  
-  DBNAME n_gonorrhoeae_nccp11945 [
-+   comment: "SpeciesIdentifier=3"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/neisseria_collection_core_9_62_3a"
-***************
-*** 2046,2051 ****
---- 2236,2242 ----
-  ALIAS 521006 n_gonorrhoeae_nccp11945
-  
-  DBNAME n_meningitidis_053442 [
-+   comment: "SpeciesIdentifier=6"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/neisseria_collection_core_9_62_3a"
-***************
-*** 2054,2059 ****
---- 2245,2251 ----
-  ALIAS 374833 n_meningitidis_053442
-  
-  DBNAME n_meningitidis_2a [
-+   comment: "SpeciesIdentifier=4"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/neisseria_collection_core_9_62_3a"
-***************
-*** 2062,2067 ****
---- 2254,2260 ----
-  ALIAS 272831 n_meningitidis_2a
-  
-  DBNAME n_meningitidis_8013 [
-+   comment: "SpeciesIdentifier=8"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/neisseria_collection_core_9_62_3a"
-***************
-*** 2070,2075 ****
---- 2263,2269 ----
-  ALIAS 604162 n_meningitidis_8013
-  
-  DBNAME n_meningitidis_a [
-+   comment: "SpeciesIdentifier=1"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/neisseria_collection_core_9_62_3a"
-***************
-*** 2078,2083 ****
---- 2272,2278 ----
-  ALIAS 122587 n_meningitidis_a
-  
-  DBNAME n_meningitidis_alpha14 [
-+   comment: "SpeciesIdentifier=7"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/neisseria_collection_core_9_62_3a"
-***************
-*** 2086,2091 ****
---- 2281,2287 ----
-  ALIAS 487 n_meningitidis_alpha14
-  
-  DBNAME n_meningitidis_b [
-+   comment: "SpeciesIdentifier=5"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/neisseria_collection_core_9_62_3a"
-***************
-*** 2330,2335 ****
---- 2526,2532 ----
-  ]
-  
-  DBNAME p_abyssi [
-+   comment: "SpeciesIdentifier=2"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/pyrococcus_collection_core_9_62_1a"
-***************
-*** 2338,2343 ****
---- 2535,2541 ----
-  ALIAS 272844 p_abyssi
-  
-  DBNAME p_furiosus [
-+   comment: "SpeciesIdentifier=3"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/pyrococcus_collection_core_9_62_1a"
-***************
-*** 2346,2351 ****
---- 2544,2550 ----
-  ALIAS 186497 p_furiosus
-  
-  DBNAME p_horikoshii [
-+   comment: "SpeciesIdentifier=1"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/pyrococcus_collection_core_9_62_1a"
-***************
-*** 2354,2359 ****
---- 2553,2559 ----
-  ALIAS 70601 p_horikoshii
-  
-  DBNAME p_kodakaraensis [
-+   comment: "SpeciesIdentifier=4"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/pyrococcus_collection_core_9_62_1a"
-***************
-*** 2428,2433 ****
---- 2628,2634 ----
-  ALIAS 7668 strongylocentrotus_purpuratus
-  
-  DBNAME s_agalactiae_ia [
-+   comment: "SpeciesIdentifier=3"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 2436,2441 ****
---- 2637,2643 ----
-  ALIAS 205921 s_agalactiae_ia
-  
-  DBNAME s_agalactiae_iii [
-+   comment: "SpeciesIdentifier=2"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 2444,2449 ****
---- 2646,2652 ----
-  ALIAS 211110 s_agalactiae_iii
-  
-  DBNAME s_agalactiae_v [
-+   comment: "SpeciesIdentifier=4"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 2452,2457 ****
---- 2655,2661 ----
-  ALIAS 208435 s_agalactiae_v
-  
-  DBNAME s_aureus_04_02981 [
-+   comment: "SpeciesIdentifier=24"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
-***************
-*** 2460,2471 ****
---- 2664,2677 ----
-  ALIAS 703339 s_aureus_04_02981
-  
-  DBNAME s_aureus_04_02981_funcgen [
-+   comment: "SpeciesIdentifier=24"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
-  ]
-  
-  DBNAME s_aureus_bovine_rf122 [
-+   comment: "SpeciesIdentifier=5"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
-***************
-*** 2474,2485 ****
---- 2680,2693 ----
-  ALIAS 273036 s_aureus_bovine_rf122
-  
-  DBNAME s_aureus_bovine_rf122_funcgen [
-+   comment: "SpeciesIdentifier=5"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
-  ]
-  
-  DBNAME s_aureus_col [
-+   comment: "SpeciesIdentifier=4"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
-***************
-*** 2488,2499 ****
---- 2696,2709 ----
-  ALIAS 93062 s_aureus_col
-  
-  DBNAME s_aureus_col_funcgen [
-+   comment: "SpeciesIdentifier=4"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
-  ]
-  
-  DBNAME s_aureus_ed133 [
-+   comment: "SpeciesIdentifier=25"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
-***************
-*** 2502,2513 ****
---- 2712,2725 ----
-  ALIAS 685039 s_aureus_ed133
-  
-  DBNAME s_aureus_ed133_funcgen [
-+   comment: "SpeciesIdentifier=25"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
-  ]
-  
-  DBNAME s_aureus_ed98 [
-+   comment: "SpeciesIdentifier=21"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
-***************
-*** 2516,2527 ****
---- 2728,2741 ----
-  ALIAS 681288 s_aureus_ed98
-  
-  DBNAME s_aureus_ed98_funcgen [
-+   comment: "SpeciesIdentifier=21"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
-  ]
-  
-  DBNAME s_aureus_jh1 [
-+   comment: "SpeciesIdentifier=6"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
-***************
-*** 2530,2541 ****
---- 2744,2757 ----
-  ALIAS 359787 s_aureus_jh1
-  
-  DBNAME s_aureus_jh1_funcgen [
-+   comment: "SpeciesIdentifier=6"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
-  ]
-  
-  DBNAME s_aureus_jh9 [
-+   comment: "SpeciesIdentifier=7"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
-***************
-*** 2544,2555 ****
---- 2760,2773 ----
-  ALIAS 359786 s_aureus_jh9
-  
-  DBNAME s_aureus_jh9_funcgen [
-+   comment: "SpeciesIdentifier=7"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
-  ]
-  
-  DBNAME s_aureus_jkd6008 [
-+   comment: "SpeciesIdentifier=26"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
-***************
-*** 2558,2569 ****
---- 2776,2789 ----
-  ALIAS 546342 s_aureus_jkd6008
-  
-  DBNAME s_aureus_jkd6008_funcgen [
-+   comment: "SpeciesIdentifier=26"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
-  ]
-  
-  DBNAME s_aureus_jkd6159 [
-+   comment: "SpeciesIdentifier=23"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
-***************
-*** 2572,2583 ****
---- 2792,2805 ----
-  ALIAS 869816 s_aureus_jkd6159
-  
-  DBNAME s_aureus_jkd6159_funcgen [
-+   comment: "SpeciesIdentifier=23"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
-  ]
-  
-  DBNAME s_aureus_mrsa252 [
-+   comment: "SpeciesIdentifier=8"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
-***************
-*** 2586,2597 ****
---- 2808,2821 ----
-  ALIAS 282458 s_aureus_mrsa252
-  
-  DBNAME s_aureus_mrsa252_funcgen [
-+   comment: "SpeciesIdentifier=8"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
-  ]
-  
-  DBNAME s_aureus_mssa476 [
-+   comment: "SpeciesIdentifier=9"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
-***************
-*** 2600,2611 ****
---- 2824,2837 ----
-  ALIAS 282459 s_aureus_mssa476
-  
-  DBNAME s_aureus_mssa476_funcgen [
-+   comment: "SpeciesIdentifier=9"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
-  ]
-  
-  DBNAME s_aureus_mu3 [
-+   comment: "SpeciesIdentifier=2"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
-***************
-*** 2614,2625 ****
---- 2840,2853 ----
-  ALIAS 418127 s_aureus_mu3
-  
-  DBNAME s_aureus_mu3_funcgen [
-+   comment: "SpeciesIdentifier=2"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
-  ]
-  
-  DBNAME s_aureus_mu50 [
-+   comment: "SpeciesIdentifier=3"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
-***************
-*** 2628,2639 ****
---- 2856,2869 ----
-  ALIAS 158878 s_aureus_mu50
-  
-  DBNAME s_aureus_mu50_funcgen [
-+   comment: "SpeciesIdentifier=3"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
-  ]
-  
-  DBNAME s_aureus_mw2 [
-+   comment: "SpeciesIdentifier=10"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
-***************
-*** 2642,2653 ****
---- 2872,2885 ----
-  ALIAS 196620 s_aureus_mw2
-  
-  DBNAME s_aureus_mw2_funcgen [
-+   comment: "SpeciesIdentifier=10"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
-  ]
-  
-  DBNAME s_aureus_n315 [
-+   comment: "SpeciesIdentifier=1"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
-***************
-*** 2656,2667 ****
---- 2888,2901 ----
-  ALIAS 158879 s_aureus_n315
-  
-  DBNAME s_aureus_n315_funcgen [
-+   comment: "SpeciesIdentifier=1"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
-  ]
-  
-  DBNAME s_aureus_nctc_8325 [
-+   comment: "SpeciesIdentifier=11"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
-***************
-*** 2670,2681 ****
---- 2904,2917 ----
-  ALIAS 93061 s_aureus_nctc_8325
-  
-  DBNAME s_aureus_nctc_8325_funcgen [
-+   comment: "SpeciesIdentifier=11"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
-  ]
-  
-  DBNAME s_aureus_newman [
-+   comment: "SpeciesIdentifier=12"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
-***************
-*** 2684,2695 ****
---- 2920,2933 ----
-  ALIAS 426430 s_aureus_newman
-  
-  DBNAME s_aureus_newman_funcgen [
-+   comment: "SpeciesIdentifier=12"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
-  ]
-  
-  DBNAME s_aureus_st398 [
-+   comment: "SpeciesIdentifier=20"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
-***************
-*** 2698,2709 ****
---- 2936,2949 ----
-  ALIAS 523796 s_aureus_st398
-  
-  DBNAME s_aureus_st398_funcgen [
-+   comment: "SpeciesIdentifier=20"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
-  ]
-  
-  DBNAME s_aureus_tch1516 [
-+   comment: "SpeciesIdentifier=13"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
-***************
-*** 2712,2723 ****
---- 2952,2965 ----
-  ALIAS 451516 s_aureus_tch1516
-  
-  DBNAME s_aureus_tch1516_funcgen [
-+   comment: "SpeciesIdentifier=13"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
-  ]
-  
-  DBNAME s_aureus_tw20 [
-+   comment: "SpeciesIdentifier=22"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
-***************
-*** 2726,2737 ****
---- 2968,2981 ----
-  ALIAS 663951 s_aureus_tw20
-  
-  DBNAME s_aureus_tw20_funcgen [
-+   comment: "SpeciesIdentifier=22"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
-  ]
-  
-  DBNAME s_aureus_usa300 [
-+   comment: "SpeciesIdentifier=14"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
-***************
-*** 2740,2751 ****
---- 2984,2997 ----
-  ALIAS 451515 s_aureus_usa300
-  
-  DBNAME s_aureus_usa300_funcgen [
-+   comment: "SpeciesIdentifier=14"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
-  ]
-  
-  DBNAME s_boydii_18 [
-+   comment: "SpeciesIdentifier=15"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 2754,2765 ****
---- 3000,3013 ----
-  ALIAS 344609 s_boydii_18
-  
-  DBNAME s_boydii_18_funcgen [
-+   comment: "SpeciesIdentifier=15"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME s_boydii_4 [
-+   comment: "SpeciesIdentifier=16"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 2768,2779 ****
---- 3016,3029 ----
-  ALIAS 300268 s_boydii_4
-  
-  DBNAME s_boydii_4_funcgen [
-+   comment: "SpeciesIdentifier=16"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME s_carnosus [
-+   comment: "SpeciesIdentifier=19"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
-***************
-*** 2782,2793 ****
---- 3032,3045 ----
-  ALIAS 396513 s_carnosus
-  
-  DBNAME s_carnosus_funcgen [
-+   comment: "SpeciesIdentifier=19"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
-  ]
-  
-  DBNAME s_dysenteriae [
-+   comment: "SpeciesIdentifier=17"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 2796,2807 ****
---- 3048,3061 ----
-  ALIAS 300267 s_dysenteriae
-  
-  DBNAME s_dysenteriae_funcgen [
-+   comment: "SpeciesIdentifier=17"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME s_dysgalactiae [
-+   comment: "SpeciesIdentifier=40"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 2810,2815 ****
---- 3064,3070 ----
-  ALIAS 486410 s_dysgalactiae
-  
-  DBNAME s_epidermidis_atcc_12228 [
-+   comment: "SpeciesIdentifier=15"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
-***************
-*** 2818,2829 ****
---- 3073,3086 ----
-  ALIAS 176280 s_epidermidis_atcc_12228
-  
-  DBNAME s_epidermidis_atcc_12228_funcgen [
-+   comment: "SpeciesIdentifier=15"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
-  ]
-  
-  DBNAME s_epidermidis_atcc_35984 [
-+   comment: "SpeciesIdentifier=16"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
-***************
-*** 2832,2843 ****
---- 3089,3102 ----
-  ALIAS 176279 s_epidermidis_atcc_35984
-  
-  DBNAME s_epidermidis_atcc_35984_funcgen [
-+   comment: "SpeciesIdentifier=16"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
-  ]
-  
-  DBNAME s_equi [
-+   comment: "SpeciesIdentifier=33"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 2846,2851 ****
---- 3105,3111 ----
-  ALIAS 553482 s_equi
-  
-  DBNAME s_equi_mgcs10565 [
-+   comment: "SpeciesIdentifier=5"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 2854,2859 ****
---- 3114,3120 ----
-  ALIAS 552526 s_equi_mgcs10565
-  
-  DBNAME s_equi_zooepidemicus [
-+   comment: "SpeciesIdentifier=32"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 2862,2867 ****
---- 3123,3129 ----
-  ALIAS 40041 s_equi_zooepidemicus
-  
-  DBNAME s_flexneri_2457t [
-+   comment: "SpeciesIdentifier=18"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 2870,2881 ****
---- 3132,3145 ----
-  ALIAS 198215 s_flexneri_2457t
-  
-  DBNAME s_flexneri_2457t_funcgen [
-+   comment: "SpeciesIdentifier=18"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME s_flexneri_301 [
-+   comment: "SpeciesIdentifier=19"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 2884,2895 ****
---- 3148,3161 ----
-  ALIAS 198214 s_flexneri_301
-  
-  DBNAME s_flexneri_301_funcgen [
-+   comment: "SpeciesIdentifier=19"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME s_flexneri_5b [
-+   comment: "SpeciesIdentifier=20"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 2898,2909 ****
---- 3164,3177 ----
-  ALIAS 373384 s_flexneri_5b
-  
-  DBNAME s_flexneri_5b_funcgen [
-+   comment: "SpeciesIdentifier=20"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME s_flexneri_x [
-+   comment: "SpeciesIdentifier=41"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 2912,2923 ****
---- 3180,3193 ----
-  ALIAS 591020 s_flexneri_x
-  
-  DBNAME s_flexneri_x_funcgen [
-+   comment: "SpeciesIdentifier=41"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME s_gallolyticus [
-+   comment: "SpeciesIdentifier=45"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 2926,2931 ****
---- 3196,3202 ----
-  ALIAS 637909 s_gallolyticus
-  
-  DBNAME s_gordonii [
-+   comment: "SpeciesIdentifier=6"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 2934,2939 ****
---- 3205,3211 ----
-  ALIAS 467705 s_gordonii
-  
-  DBNAME s_haemolyticus [
-+   comment: "SpeciesIdentifier=17"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
-***************
-*** 2942,2953 ****
---- 3214,3227 ----
-  ALIAS 279808 s_haemolyticus
-  
-  DBNAME s_haemolyticus_funcgen [
-+   comment: "SpeciesIdentifier=17"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
-  ]
-  
-  DBNAME s_lugdunensis [
-+   comment: "SpeciesIdentifier=27"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
-***************
-*** 2956,2967 ****
---- 3230,3243 ----
-  ALIAS 698737 s_lugdunensis
-  
-  DBNAME s_lugdunensis_funcgen [
-+   comment: "SpeciesIdentifier=27"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
-  ]
-  
-  DBNAME s_mitis [
-+   comment: "SpeciesIdentifier=48"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 2970,2975 ****
---- 3246,3252 ----
-  ALIAS 365659 s_mitis
-  
-  DBNAME s_mutans_atcc_700610 [
-+   comment: "SpeciesIdentifier=7"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 2978,2983 ****
---- 3255,3261 ----
-  ALIAS 210007 s_mutans_atcc_700610
-  
-  DBNAME s_mutans_nn2025 [
-+   comment: "SpeciesIdentifier=44"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 2986,2991 ****
---- 3264,3270 ----
-  ALIAS 511691 s_mutans_nn2025
-  
-  DBNAME s_pneumoniae_70585 [
-+   comment: "SpeciesIdentifier=34"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 2994,2999 ****
---- 3273,3279 ----
-  ALIAS 488221 s_pneumoniae_70585
-  
-  DBNAME s_pneumoniae_a19 [
-+   comment: "SpeciesIdentifier=49"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 3002,3007 ****
---- 3282,3288 ----
-  ALIAS 525381 s_pneumoniae_a19
-  
-  DBNAME s_pneumoniae_atcc_700669 [
-+   comment: "SpeciesIdentifier=39"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 3010,3015 ****
---- 3291,3297 ----
-  ALIAS 561276 s_pneumoniae_atcc_700669
-  
-  DBNAME s_pneumoniae_atcc_baa_255 [
-+   comment: "SpeciesIdentifier=8"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 3018,3023 ****
---- 3300,3306 ----
-  ALIAS 171101 s_pneumoniae_atcc_baa_255
-  
-  DBNAME s_pneumoniae_cgsp14 [
-+   comment: "SpeciesIdentifier=9"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 3026,3031 ****
---- 3309,3315 ----
-  ALIAS 516950 s_pneumoniae_cgsp14
-  
-  DBNAME s_pneumoniae_d39 [
-+   comment: "SpeciesIdentifier=10"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 3034,3039 ****
---- 3318,3324 ----
-  ALIAS 373153 s_pneumoniae_d39
-  
-  DBNAME s_pneumoniae_g54 [
-+   comment: "SpeciesIdentifier=11"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 3042,3047 ****
---- 3327,3333 ----
-  ALIAS 512566 s_pneumoniae_g54
-  
-  DBNAME s_pneumoniae_hungary19a_6 [
-+   comment: "SpeciesIdentifier=12"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 3050,3055 ****
---- 3336,3342 ----
-  ALIAS 487214 s_pneumoniae_hungary19a_6
-  
-  DBNAME s_pneumoniae_jja [
-+   comment: "SpeciesIdentifier=35"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 3058,3063 ****
---- 3345,3351 ----
-  ALIAS 488222 s_pneumoniae_jja
-  
-  DBNAME s_pneumoniae_p1031 [
-+   comment: "SpeciesIdentifier=37"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 3066,3071 ****
---- 3354,3360 ----
-  ALIAS 488223 s_pneumoniae_p1031
-  
-  DBNAME s_pneumoniae_taiwan19f_14 [
-+   comment: "SpeciesIdentifier=36"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 3074,3079 ****
---- 3363,3369 ----
-  ALIAS 487213 s_pneumoniae_taiwan19f_14
-  
-  DBNAME s_pneumoniae_tigr4 [
-+   comment: "SpeciesIdentifier=13"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 3082,3087 ****
---- 3372,3378 ----
-  ALIAS 170187 s_pneumoniae_tigr4
-  
-  DBNAME s_pyogenes_atcc_baa_595 [
-+   comment: "SpeciesIdentifier=17"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 3090,3095 ****
---- 3381,3387 ----
-  ALIAS 198466 s_pyogenes_atcc_baa_595
-  
-  DBNAME s_pyogenes_m18 [
-+   comment: "SpeciesIdentifier=15"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 3098,3103 ****
---- 3390,3396 ----
-  ALIAS 186103 s_pyogenes_m18
-  
-  DBNAME s_pyogenes_m2 [
-+   comment: "SpeciesIdentifier=20"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 3106,3111 ****
---- 3399,3405 ----
-  ALIAS 370552 s_pyogenes_m2
-  
-  DBNAME s_pyogenes_m28 [
-+   comment: "SpeciesIdentifier=16"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 3114,3119 ****
---- 3408,3414 ----
-  ALIAS 319701 s_pyogenes_m28
-  
-  DBNAME s_pyogenes_m4 [
-+   comment: "SpeciesIdentifier=21"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 3122,3127 ****
---- 3417,3423 ----
-  ALIAS 370554 s_pyogenes_m4
-  
-  DBNAME s_pyogenes_m49 [
-+   comment: "SpeciesIdentifier=25"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 3130,3135 ****
---- 3426,3432 ----
-  ALIAS 471876 s_pyogenes_m49
-  
-  DBNAME s_pyogenes_m5 [
-+   comment: "SpeciesIdentifier=24"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 3138,3143 ****
---- 3435,3441 ----
-  ALIAS 160491 s_pyogenes_m5
-  
-  DBNAME s_pyogenes_m6 [
-+   comment: "SpeciesIdentifier=19"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 3146,3151 ****
---- 3444,3450 ----
-  ALIAS 286636 s_pyogenes_m6
-  
-  DBNAME s_pyogenes_mgas2096 [
-+   comment: "SpeciesIdentifier=22"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 3154,3159 ****
---- 3453,3459 ----
-  ALIAS 370553 s_pyogenes_mgas2096
-  
-  DBNAME s_pyogenes_mgas5005 [
-+   comment: "SpeciesIdentifier=14"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 3162,3167 ****
---- 3462,3468 ----
-  ALIAS 293653 s_pyogenes_mgas5005
-  
-  DBNAME s_pyogenes_mgas9429 [
-+   comment: "SpeciesIdentifier=23"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 3170,3175 ****
---- 3471,3477 ----
-  ALIAS 370551 s_pyogenes_mgas9429
-  
-  DBNAME s_pyogenes_sf370 [
-+   comment: "SpeciesIdentifier=1"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 3178,3183 ****
---- 3480,3486 ----
-  ALIAS 160490 s_pyogenes_sf370
-  
-  DBNAME s_pyogenes_ssi_1 [
-+   comment: "SpeciesIdentifier=18"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 3186,3191 ****
---- 3489,3495 ----
-  ALIAS 193567 s_pyogenes_ssi_1
-  
-  DBNAME s_sanguinis [
-+   comment: "SpeciesIdentifier=26"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 3194,3199 ****
---- 3498,3504 ----
-  ALIAS 388919 s_sanguinis
-  
-  DBNAME s_saprophyticus [
-+   comment: "SpeciesIdentifier=18"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
-***************
-*** 3202,3213 ****
---- 3507,3520 ----
-  ALIAS 342451 s_saprophyticus
-  
-  DBNAME s_saprophyticus_funcgen [
-+   comment: "SpeciesIdentifier=18"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
-  ]
-  
-  DBNAME s_sonnei [
-+   comment: "SpeciesIdentifier=21"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
-***************
-*** 3216,3227 ****
---- 3523,3536 ----
-  ALIAS 300269 s_sonnei
-  
-  DBNAME s_sonnei_funcgen [
-+   comment: "SpeciesIdentifier=21"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
-  ]
-  
-  DBNAME s_suis_05zyh33 [
-+   comment: "SpeciesIdentifier=27"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 3230,3235 ****
---- 3539,3545 ----
-  ALIAS 391295 s_suis_05zyh33
-  
-  DBNAME s_suis_98hah33 [
-+   comment: "SpeciesIdentifier=28"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 3238,3243 ****
---- 3548,3554 ----
-  ALIAS 391296 s_suis_98hah33
-  
-  DBNAME s_suis_bm407 [
-+   comment: "SpeciesIdentifier=42"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 3246,3251 ****
---- 3557,3563 ----
-  ALIAS 568814 s_suis_bm407
-  
-  DBNAME s_suis_gz1 [
-+   comment: "SpeciesIdentifier=50"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 3254,3259 ****
---- 3566,3572 ----
-  ALIAS 423211 s_suis_gz1
-  
-  DBNAME s_suis_p1_7 [
-+   comment: "SpeciesIdentifier=43"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 3262,3267 ****
---- 3575,3581 ----
-  ALIAS 218494 s_suis_p1_7
-  
-  DBNAME s_suis_sc84 [
-+   comment: "SpeciesIdentifier=41"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 3270,3275 ****
---- 3584,3590 ----
-  ALIAS 568813 s_suis_sc84
-  
-  DBNAME s_thermophilus_atcc_baa_250 [
-+   comment: "SpeciesIdentifier=29"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 3278,3283 ****
---- 3593,3599 ----
-  ALIAS 264199 s_thermophilus_atcc_baa_250
-  
-  DBNAME s_thermophilus_atcc_baa_491 [
-+   comment: "SpeciesIdentifier=30"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 3286,3291 ****
---- 3602,3608 ----
-  ALIAS 322159 s_thermophilus_atcc_baa_491
-  
-  DBNAME s_thermophilus_cnrz_1066 [
-+   comment: "SpeciesIdentifier=31"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 3294,3299 ****
---- 3611,3617 ----
-  ALIAS 299768 s_thermophilus_cnrz_1066
-  
-  DBNAME s_uberis [
-+   comment: "SpeciesIdentifier=38"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
-***************
-*** 3350,3355 ****
---- 3668,3674 ----
-  ]
-  
-  DBNAME wolbachia_sp_brugia_malayi [
-+   comment: "SpeciesIdentifier=3"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/wolbachia_collection_core_9_62_1a"
-***************
-*** 3358,3363 ****
---- 3677,3683 ----
-  ALIAS 292805 wolbachia_sp_brugia_malayi
-  
-  DBNAME wolbachia_sp_drosophila_simulans [
-+   comment: "SpeciesIdentifier=2"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/wolbachia_collection_core_9_62_1a"
-***************
-*** 3366,3371 ****
---- 3686,3692 ----
-  ALIAS 66084 wolbachia_sp_drosophila_simulans
-  
-  DBNAME w_pipientis_culex_pipiens [
-+   comment: "SpeciesIdentifier=1"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/wolbachia_collection_core_9_62_1a"
-***************
-*** 3374,3379 ****
---- 3695,3701 ----
-  ALIAS 570417 w_pipientis_culex_pipiens
-  
-  DBNAME w_pipientis_wmel [
-+   comment: "SpeciesIdentifier=4"
-    release: "62"
-    server:  "ensemblgenomes"
-    url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/wolbachia_collection_core_9_62_1a"
-diff -c -N --recursive -a EMBOSS-6.4.0old/nucleus/embgroup.c EMBOSS-6.4.0/nucleus/embgroup.c
-*** EMBOSS-6.4.0old/nucleus/embgroup.c	2011-05-16 11:14:30.000000000 +0100
---- EMBOSS-6.4.0/nucleus/embgroup.c	2011-09-05 12:23:43.000000000 +0100
-***************
-*** 1173,1179 ****
-      AjPStr tail;
-      AjPStr revhead;
-      AjPStr revtail;
-!     AjPStr dummy;		 /* dummy string for ajListstrPop() */
-  
-  
-      len = ajListstrToarray(sublist, &sub);
---- 1173,1179 ----
-      AjPStr tail;
-      AjPStr revhead;
-      AjPStr revtail;
-!     AjPStr dummy = NULL;        /* dummy string for ajListstrPop() */
-  
-  
-      len = ajListstrToarray(sublist, &sub);
+     
+     ajStrAssignS(&TvString, groupfield);
++    if(ajStrFindC(TvString, "\\\"") >= 0)
++    {
++        escapedquote = ajTrue;
++        ajStrExchangeCC(&TvString, "\\\"", "\001");
++    }
++
+     while(ajStrGetLen(TvString))
+     {
+ 	if(ajRegExec(Gff3oldRegexTvTagval, TvString))
+ 	{
+ 	    ajRegSubI(Gff3oldRegexTvTagval, 1, &tmptag);
+ 	    ajRegSubI(Gff3oldRegexTvTagval, 2, &featinValTmp);
++                
+ 	    ajStrTrimWhite(&featinValTmp);
+ 	    /*ajDebug("Gff3Tv '%S' '%S'\n", tmptag, featinValTmp);*/
+ 	    ajRegPost(Gff3oldRegexTvTagval, &TvString);
+@@ -3076,6 +3084,8 @@
+ 		featFlagSet(gf, featinValTmp);
+ 	    else
+ 	    {
++                if(escapedquote)
++                    ajStrExchangeCC(&featinValTmp, "\001", "\"");
+ 		/*ajDebug("GFF3 before QuoteStrip: '%S'\n", featinValTmp);*/
+ 		ajStrQuoteStrip(&featinValTmp);
+ 		/*ajDebug(" GFF3 after QuoteStrip: '%S'\n", featinValTmp);*/
+@@ -5896,8 +5906,8 @@
+     Gff3Regexdirective = ajRegCompC("^##(.*)");
+     Gff3Regexcomment   = ajRegCompC("^#(.*)");
+     Gff3RegexTvTagval  = ajRegCompC(" *([^ =]+)[ =]([^;]+)*(;|$)"); /* "tag name */
+-    Gff3oldRegexTvTagval  = ajRegCompC(" *([^ =]+)[ =]((\"(\\.|[^\\\"])*\"|"
+-			 	   "[^;]+)*)(;|$)"); /* "tag name */
++    Gff3oldRegexTvTagval  = ajRegCompC(" *([^ =]+)[ =](\"[^\"]*\"|"
++			 	   "[^;]+)(;|$)"); /* "tag name */
+ 
+     FeatInitGff3 = ajTrue;
+ 
+--- emboss-6.4.0.orig/ajax/core/ajfeatwrite.c
++++ emboss-6.4.0/ajax/core/ajfeatwrite.c
+@@ -4134,7 +4134,7 @@
+         tmpid = owner->Seqid;
+ 
+     if(thys->Score)
+-	ajFmtPrintF(file, "%S\t%S\t%S\t%d\t%d\t%.3f\t%c\t%c\t",
++	ajFmtPrintF(file, "%S\t%S\t%S\t%d\t%d\t%.3g\t%c\t%c\t",
+ 	            tmpid,
+ 	            thys->Source,
+ 	            outtyp,
+@@ -4215,6 +4215,7 @@
+     while(!ajListIterDone(iter))
+     {
+ 	tv     = ajListIterGet(iter);
++        ajStrFmtLower(&tv->Tag);
+ 	outtag = tv->Tag;
+ 	
+ 	if(!outtag)
+--- emboss-6.4.0.orig/ajax/core/ajfmt.c
++++ emboss-6.4.0/ajax/core/ajfmt.c
+@@ -50,6 +50,16 @@
+ #include "ajax.h"
+ 
+ 
++#define EVF_PERCENT  1
++#define EVF_NOCON    2
++#define EVF_LONG     4
++#define EVF_AJLONG   8
++#define EVF_UNSIGNED 16
++#define EVF_NEGATE   32
++
++#define EVF_BUF 128
++
++
+ typedef void (*Fmt_T) (ajint code, VALIST ap,
+ 		       int put(int c, void *cl), void *cl,
+ 		       const ajuint* flags, ajint width, ajint precision);
+@@ -148,6 +158,8 @@
+ static void cvt_u(ajint code, VALIST ap, int put(int c, void* cl), void* cl,
+ 		  const ajuint* flags, ajint width, ajint precision);
+ 
++static ajint evfscanf(FILE *stream, const char *fmt, va_list ap);
++
+ 
+ 
+ 
+@@ -2290,7 +2302,7 @@
+     __va_copy(save_ap,ap);
+ #endif
+ 
+-    n = fscanf(file,fmt,ap);
++    n = evfscanf(file,fmt,ap);
+ 
+ #if defined(__amd64__) || defined(__EM64T__) || \
+     defined(__PPC__) && defined(_CALL_SYSV)
+@@ -2304,6 +2316,519 @@
+ }
+ 
+ 
++
++
++/* @funcstatic evfscanf *******************************************************
++**
++** EMBOSS version of C99 vfscanf() including %S conversion
++**
++** @param [r] stream [FILE*] file pointer.
++** @param [r] fmt [const char*] Format string.
++** @param [v] ap [va_list] Variable length argument list
++** @return [ajint] number of successful conversions
++**
++** @release 6.4.0
++** @@
++******************************************************************************/
++
++static ajint evfscanf(FILE *stream, const char *fmt, va_list ap)
++{
++    char fch = '\0';
++    int  ipc = 0;
++    int  tpc = 0;
++    
++    ajuint uflags = 0;
++    ajint  nconv  = 0;
++    ajint  width  = 0;
++    AjBool fin    = ajFalse;
++    AjBool idone  = ajFalse;
++
++    ajulong sum = 0L;
++    
++    ajuint nread = 0;
++    ajint  ret   = EOF;
++    ajint  base  = 10;
++
++    char *p       = NULL;
++    char fchars[] = "0123456789Ee.";
++
++    char buf[EVF_BUF];
++
++    AjPStr *str = NULL;
++    
++    union
++    {
++        ajlong  L;
++        long    l;
++        unsigned long ul;
++        ajulong uL;
++        ajint   i;
++        ajuint  u;
++        char    *c;
++        double  d;
++    } val;
++    
++
++    if(feof(stream))
++        return EOF;
++
++    val.ul = 0L;
++    
++    while((fch = *fmt))
++    {
++        ++fmt;
++
++
++        if(uflags & EVF_PERCENT)
++        {
++            /* If %% has been given then do a simple match */
++            if(fch == '%')
++            {
++                uflags &= ~EVF_PERCENT;
++
++                if((ipc = getc(stream)) == EOF)
++                    break;
++
++                ++sum;
++                
++                if(ipc != (int) fch)
++                    break;
++
++                continue;
++            }
++
++            /* Now in the realm of format specifiers */
++            /* First test for any width */
++
++            if(fch >= '0' && fch <= '0')
++            {
++                fch -= '0';
++
++                if(width == INT_MAX)
++                    width = 0;
++                else
++                    width *= 10;
++
++                width += (ajint) fch;
++
++                continue;
++            }
++            
++            if((char) fch != 'S')
++                fch = tolower(fch);
++
++            switch(fch)
++            {
++                case '*':
++                    uflags |= EVF_NOCON;
++                    continue;
++
++                case 'n':
++                    if(!(uflags & EVF_NOCON))
++                        *(va_arg(ap, ajint *)) = (ajint) sum;
++
++                    break;
++                    
++                case 'c':
++                    if(!(uflags & EVF_NOCON))
++                        val.c = va_arg(ap, char *);
++
++                    if(width == INT_MAX)
++                        width = 1;
++
++                    while(width-- > 0)
++                    {
++                        if((ipc = getc(stream)) == EOF)
++                        {
++                            fin = ajTrue;
++                            break;
++                        }
++
++                        ++nread;
++                        
++                        if(!(uflags & EVF_NOCON))
++                            *val.c++ = (char) ipc;
++                    }
++
++                    break;
++
++                case 'h':      /* ANSI C converts shorts to ints */
++                    continue;
++                    
++                case 'l':
++                    uflags |= EVF_LONG;
++                    continue;
++
++                case 'L':
++                    uflags |= EVF_AJLONG;
++                    continue;
++
++                case 's':
++                    if(!(uflags & EVF_NOCON))
++                        val.c = va_arg(ap, char *);
++
++                    do
++                    {
++                        ipc = getc(stream);
++                        ++sum;
++                    } while(isspace(ipc));
++
++                    if(ipc == EOF)
++                    {
++                        fin = ajTrue;
++                        break;
++                    }
++
++                    while(width-- > 0)
++                    {
++                        if(isspace(ipc))
++                        {
++                            ungetc(ipc, stream);
++                            --sum;
++                            break;
++                        }
++
++                        if(!(uflags & EVF_NOCON))
++                            *val.c++ = (char) ipc;
++
++                        if((ipc = getc(stream)) == EOF)
++                            break;
++
++                        ++nread;
++                    }
++
++                    if(!(uflags & EVF_NOCON))
++                        *val.c = '\0';
++
++                    break;
++
++                case 'S':
++                    if(!(uflags & EVF_NOCON))
++                    {
++                        str = (AjPStr *) va_arg(ap, AjPStr *);
++                        ajStrAssignC(str,"");
++                    }
++                    
++                    do
++                    {
++                        ipc = getc(stream);
++                        ++sum;
++                    } while(isspace(ipc));
++
++                    if(ipc == EOF)
++                    {
++                        fin = ajTrue;
++                        break;
++                    }
++
++                    while(width-- > 0)
++                    {
++                        if(isspace(ipc))
++                        {
++                            ungetc(ipc, stream);
++                            --sum;
++                            break;
++                        }
++
++                        if(!(uflags & EVF_NOCON))
++                            ajStrAppendK(str, (char) ipc);
++
++                        if((ipc = getc(stream)) == EOF)
++                            break;
++
++                        ++nread;
++                    }
++
++                    break;
++
++                case 'o':
++                    base = 8;
++                    /* Fallthrough */
++                case 'x':
++                    if(base == 10)  /* To protect fallthrough from octal */
++                        base = 16;
++                    /* Fallthrough */
++                case 'u':
++                    uflags |= EVF_UNSIGNED;
++                    /* Fallthrough */
++                case 'd':
++                case 'i':
++                    do
++                    {
++                        ipc = getc(stream);
++                        ++sum;
++                    } while(isspace(ipc));
++
++                    if(ipc == EOF)
++                    {
++                        fin = ajTrue;
++                        break;
++                    }
++                    
++                    if((char) ipc == '+' || (char) ipc == '-')
++                    {
++                        if(--width <= 0)
++                        {
++                            fin = ajTrue;
++                            break;
++                        }
++
++                        if((char) ipc == '-')
++                            uflags |= EVF_NEGATE;
++
++                        if((ipc = getc(stream)) == EOF)
++                        {
++                            fin = ajTrue;
++                            break;
++                        }
++
++                        ++sum;
++                    }
++
++                    idone = ajFalse;
++                    val.uL = 0;                    
++
++                    if((char) ipc == '0')
++                    {
++                        if(--width <= 0)
++                            idone = ajTrue;
++
++                        if(!idone)
++                            if((ipc = getc(stream)) == EOF)
++                                idone = ajTrue;
++
++                        if((char) tolower(ipc) == 'x' && !idone)
++                        {
++                            if(fch == 'o' || fch == 'd' || fch == 'u')
++                            {
++                                /* Invalid 0x */
++                                ungetc(ipc, stream);
++                                idone = ajTrue;
++                            }
++
++                            if(!idone)
++                                base = 16;
++
++                            if(!idone)
++                            {
++                                if((ipc = getc(stream)) == EOF)
++                                    idone = ajTrue;
++                                else
++                                    ++sum;
++                            }
++                        }
++                        else if(fch == 'i' && !idone)
++                            base = 8;
++                    }
++
++                    ++nread;
++
++                    for(;!idone;)
++                    {
++                        tpc = tolower(ipc);
++
++                        tpc -= '0';
++
++                        if(tpc > 9)
++                        {
++                            tpc += '0';
++                            tpc -= 'a';
++
++                            if(tpc >= 0)
++                                tpc += 10;
++                        }
++
++                        if(tpc < 0 || tpc >= base)
++                        {
++                            ungetc(ipc, stream);
++                            --nread;
++                            break;
++                        }
++
++                        val.uL *= base;
++                        val.uL += tpc;
++
++                        if(--width <= 0)
++                            break;
++                        
++                        if((ipc = getc(stream)) == EOF)
++                            break;
++
++                        ++nread;
++                    }
++
++                    if((uflags & EVF_NEGATE) && !idone)
++                        val.L = -val.L;
++                    
++                    if(!(uflags & EVF_NOCON))
++                    {
++                        if((uflags & (EVF_UNSIGNED | EVF_AJLONG)) ==
++                            (EVF_UNSIGNED | EVF_AJLONG))
++                            *(va_arg(ap, ajulong *)) = val.uL;
++                        else if(uflags & (EVF_AJLONG))
++                            *(va_arg(ap, ajlong *)) = val.L;
++                        else if((uflags & (EVF_UNSIGNED | EVF_LONG)) ==
++                                 (EVF_UNSIGNED | EVF_LONG))
++                            *(va_arg(ap, unsigned long *)) = val.ul;
++                        else if(uflags & (EVF_LONG))
++                            *(va_arg(ap, long *)) = val.l;
++                        else if(uflags & (EVF_UNSIGNED))
++                            *(va_arg(ap, ajuint *)) = val.u;
++                        else
++                            *(va_arg(ap, ajint *)) = val.i;
++                    }
++
++                    break;
++
++                case 'e':
++                case 'f':
++                case 'g':
++                    do
++                    {
++                        ipc = getc(stream);
++                        ++sum;
++                    } while(isspace(ipc));
++
++                    if(ipc == EOF)
++                    {
++                        --sum;
++                        fin = ajTrue;
++                        break;
++                    }
++                    
++                    if((char) ipc == '+' || (char) ipc == '-')
++                    {
++                        if((char) ipc == '-')
++                            uflags |= EVF_NEGATE;
++
++                        if((ipc = getc(stream)) == EOF)
++                        {
++                            fin = ajTrue;
++                            break;
++                        }
++
++                        ++sum;
++                    }
++
++                    val.d = 0.0;
++
++                    ++nread;
++                    
++                    for(p = buf; p < buf + EVF_BUF - 1 && width >0; --width)
++                    {
++                        if(!strchr(fchars, ipc))
++                        {
++                            ungetc(ipc, stream);
++                            --nread;
++                            break;
++                        }
++
++                        if((char) ipc == 'e' || (char) ipc == 'E')
++                        {
++                            fchars[10] = '\0';
++                            *p++ = (char) ipc;
++
++                            if((ipc = getc(stream)) == EOF)
++                                break;
++
++                            ++nread;
++
++                            if((char) ipc != '+' && (char) ipc != '-')
++                                continue;
++                        }
++                        else if((char) ipc == '.')
++                            fchars[12] = '\0';
++
++                        *p++ = (char) ipc;
++
++                        if((ipc = getc(stream)) == EOF)
++                            break;
++
++                        ++nread;
++                    }
++                    
++                    *p++ = '\0';
++
++                    val.d = strtod(buf, 0);
++                    
++                    if(uflags & EVF_NEGATE)
++                        val.d = -val.d;
++
++                    fchars[10] = 'E';
++                    fchars[12] = '.';
++
++                    *(va_arg(ap, double *)) = val.d;
++
++                    break;
++            }
++
++            if(fin)
++                break;
++            
++            if(nread)
++            {
++                if(!(uflags & EVF_NOCON))
++                    ++nconv;
++
++                ret = 0;
++                sum += nread;
++            }
++            else if(fch != 'n' || ipc == EOF)
++                break;
++
++            uflags = 0;
++        }
++        else if(fch == '%')
++        {
++            uflags = EVF_PERCENT;
++            base = 10;
++            nread = 0;
++            width = INT_MAX;
++        }
++        else if(isspace(fch))
++        {
++            do
++            {
++                ipc = getc(stream);
++                ++sum;
++            } while(isspace(ipc));
++
++            --sum;
++            
++            if(ipc == EOF)
++                break;
++
++            ungetc(ipc, stream);
++        }
++        else
++        {
++            if((ipc = getc(stream)) == EOF)
++                break;
++
++            ++sum;
++            
++            if(ipc != (int) fch)
++                break;
++        }
++
++    }
++
++    if((uflags & EVF_PERCENT) && nread)
++    {
++        if(!(uflags & EVF_NOCON))
++            ++nconv;
++
++        ret = 0;
++    }
++
++    if(ipc == EOF && nconv == 0)
++        return ret;
++    
++    
++    return nconv;
++}
++
++
+ 
+ 
+ /* @funcstatic fmtVscan *******************************************************
+--- emboss-6.4.0.orig/ajax/core/ajnam.c
++++ emboss-6.4.0/ajax/core/ajnam.c
+@@ -8172,6 +8172,10 @@
+     AjBool hasmethod = ajFalse;
+     AjBool hastype   = ajFalse;
+     AjPStr name = NULL;
++    AjPStr token = NULL;
++    AjPStr typetoken = NULL;
++    AjPStrTok handle = NULL;
++    AjPStrTok typehandle = NULL;
+     const AjPStr value = NULL;
+     const AjPStr dbtype = NULL;
+ 
+@@ -8202,9 +8206,22 @@
+ 	    {
+ 		hasformat=ajTrue;
+ 
+-                if(!namInformatTest(value, dbtype))  /* test: dbunknowns.rc */
+-                        namError("Database '%S' %S: '%S' unknown",
+-                                 entry->name, name, value);
++                ok = ajFalse;
++                ajStrTokenAssignC(&typehandle, dbtype, " ,;");
++                ajStrTokenAssignC(&handle, value, " ,;");
++
++                while(ajStrTokenNextParse(&typehandle, &typetoken))
++                {
++                    while(ajStrTokenNextParse(&handle, &token))
++                    {
++                        if(namInformatTest(token, typetoken))
++                            ok = ajTrue;
++                    }
++                }
++
++                if(!ok) /* test: dbunknowns.rc */
++                    namError("Database '%S' %S: '%S' unknown",
++                             entry->name, name, value);
+             }
+ 
+             if(ajStrPrefixC(name, "method"))
+@@ -8221,9 +8238,13 @@
+ 		hastype=ajTrue;
+ 		oktype = ajFalse;
+ 
+-		for(k=0; namDbTypes[k].Name; k++)
+-		    if(ajStrMatchCaseC(value, namDbTypes[k].Name)) 
+-			oktype = ajTrue;
++                ajStrTokenAssignC(&typehandle, value, " ,;");
++                while(ajStrTokenNextParse(&typehandle, &typetoken))
++                {
++                    for(k=0; namDbTypes[k].Name; k++)
++                        if(ajStrMatchCaseC(typetoken, namDbTypes[k].Name)) 
++                            oktype = ajTrue;
++                }
+ 
+ 		if(!oktype)		/* test: dbunknowns.rc */
+ 		    namError("Database '%S' %S: '%S' unknown",
+@@ -8260,6 +8281,10 @@
+     }
+ 
+     ajStrDel(&name);
++    ajStrTokenDel(&handle);
++    ajStrTokenDel(&typehandle);
++    ajStrDel(&token);
++    ajStrDel(&typetoken);
+ 
+     return ok;
+ }
+--- emboss-6.4.0.orig/ajax/core/ajnexus.c
++++ emboss-6.4.0/ajax/core/ajnexus.c
+@@ -2,23 +2,25 @@
+ ** @source AJAX nexus file parsing functions
+ **
+ ** @author Copyright (C) 2003 Peter Rice
+-** @version 1.0
++** @version $Revision: 1.20 $
++** @modified $Date: 2011/08/09 12:03:22 $ by $Author: rice $
+ ** @@
+ **
+ ** This library is free software; you can redistribute it and/or
+-** modify it under the terms of the GNU Library General Public
++** modify it under the terms of the GNU Lesser General Public
+ ** License as published by the Free Software Foundation; either
+-** version 2 of the License, or (at your option) any later version.
++** version 2.1 of the License, or (at your option) any later version.
+ **
+ ** This library is distributed in the hope that it will be useful,
+ ** but WITHOUT ANY WARRANTY; without even the implied warranty of
+ ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-** Library General Public License for more details.
++** Lesser General Public License for more details.
++**
++** You should have received a copy of the GNU Lesser General Public
++** License along with this library; if not, write to the Free Software
++** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
++** MA  02110-1301,  USA.
+ **
+-** You should have received a copy of the GNU Library General Public
+-** License along with this library; if not, write to the
+-** Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+-** Boston, MA  02111-1307, USA.
+ ******************************************************************************/
+ 
+ #include "ajax.h"
+@@ -152,6 +154,8 @@
+ **
+ ** @param [u] buff [AjPFilebuff] Input buffered file
+ ** @return [AjPNexus] Nexus data object
++**
++** @release 2.8.0
+ ** @@
+ ******************************************************************************/
+ 
+@@ -197,6 +201,7 @@
+     if(!ajStrPrefixCaseC(rdline, "#NEXUS"))
+     {				/* first line test */
+ 	ajFilebuffReset(buff);
++        ajStrDel(&rdline);
+ 
+ 	return NULL;
+     }
+@@ -205,7 +210,10 @@
+ 
+     ok = ajBuffreadLine(buff, &rdline);
+     if(!ok)
++    {
++        ajStrDel(&rdline);
+ 	return NULL;
++    }
+ 
+     block = ajFalse;
+     commentlevel = 0;
+@@ -254,7 +262,11 @@
+ 	else if (block && ajRegExec(endexp, rdline)) /* end line */
+ 	{
+ 	    if (!nexusBlockSave(ret, blocklist, blockname))
++            {
++                ajStrDel(&rdline);
++                ajStrDel(&blockname);
+ 		return NULL;
++            }
+ 
+ 	    ajStrAssignClear(&blockname);
+ 	    block = ajFalse;
+@@ -266,9 +278,8 @@
+ 	    if (ajStrGetLen(rdline))
+ 	    {
+ 		ajListstrPushAppend(blocklist, rdline);
++                rdline = NULL;
+ 	    }
+-
+-	    rdline = NULL;
+ 	}
+ 
+ 	ok = ajBuffreadLine(buff, &rdline);
+@@ -277,11 +288,16 @@
+     if (block)
+     {
+ 	ajDebug("ajNexusParse unclosed block '%S'\n", blockname);
+-
++        ajStrDel(&rdline);
++        ajStrDel(&blockname);
+ 	return NULL;
+     }
+ 
+     ajNexusTrace(ret);
++    ajStrDel(&rdline);
++    ajStrDel(&blockname);
++
++    ajListFree(&blocklist);
+ 
+     return ret;
+ }
+@@ -295,6 +311,8 @@
+ **
+ ** @return [AjPNexus] New AjPNexus object
+ ** @category new [AjPNexus] Default constructor
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ AjPNexus ajNexusNew(void)
+@@ -309,12 +327,14 @@
+ 
+ 
+ 
+-/* @funcstatic nexusTaxaNew ***********************************************
++/* @funcstatic nexusTaxaNew ***************************************************
+ **
+ ** Constructor for AjPNexusTaxa
+ **
+ ** @return [AjPNexusTaxa] New AjPNexusTaxa object
+ ** @category new [AjPNexusTaxa] Default constructor
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ static AjPNexusTaxa nexusTaxaNew(void)
+@@ -335,6 +355,8 @@
+ **
+ ** @return [AjPNexusCharacters] New AjPNexusCharacters object
+ ** @category new [AjPNexusCharacters] Default constructor
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ static AjPNexusCharacters nexusCharactersNew(void)
+@@ -363,6 +385,8 @@
+ **
+ ** @return [AjPNexusUnaligned] New AjPNexusUnaligned object
+ ** @category new [AjPNexusUnaligned] Default constructor
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ static AjPNexusUnaligned nexusUnalignedNew(void)
+@@ -389,6 +413,8 @@
+ **
+ ** @return [AjPNexusDistances] New AjPNexusDistances object
+ ** @category new [AjPNexusDistances] Default constructor
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ static AjPNexusDistances nexusDistancesNew(void)
+@@ -409,12 +435,14 @@
+ 
+ 
+ 
+-/* @funcstatic nexusSetsNew ***********************************************
++/* @funcstatic nexusSetsNew ***************************************************
+ **
+ ** Constructor for AjPNexusSets
+ **
+ ** @return [AjPNexusSets] New AjPNexusSets object
+ ** @category new [AjPNexusSets] Default constructor
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ static AjPNexusSets nexusSetsNew(void)
+@@ -435,6 +463,8 @@
+ **
+ ** @return [AjPNexusAssumptions] New AjPNexusAssumptions object
+ ** @category new [AjPNexusAssumptions] Default constructor
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ static AjPNexusAssumptions nexusAssumptionsNew(void)
+@@ -452,12 +482,14 @@
+ 
+ 
+ 
+-/* @funcstatic nexusCodonsNew ***********************************************
++/* @funcstatic nexusCodonsNew *************************************************
+ **
+ ** Constructor for AjPNexusCodons
+ **
+ ** @return [AjPNexusCodons] New AjPNexusCodons object
+ ** @category new [AjPNexusCodons] Default constructor
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ static AjPNexusCodons nexusCodonsNew(void)
+@@ -472,12 +504,14 @@
+ 
+ 
+ 
+-/* @funcstatic nexusTreesNew ***********************************************
++/* @funcstatic nexusTreesNew **************************************************
+ **
+ ** Constructor for AjPNexusTrees
+ **
+ ** @return [AjPNexusTrees] New AjPNexusTrees object
+ ** @category new [AjPNexusTrees] Default constructor
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ static AjPNexusTrees nexusTreesNew(void)
+@@ -492,12 +526,14 @@
+ 
+ 
+ 
+-/* @funcstatic nexusNotesNew ***********************************************
++/* @funcstatic nexusNotesNew **************************************************
+ **
+ ** Constructor for AjPNexusNotes
+ **
+ ** @return [AjPNexusNotes] New AjPNexusNotes object
+ ** @category new [AjPNexusNotes] Default constructor
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ static AjPNexusNotes nexusNotesNew(void)
+@@ -519,6 +555,8 @@
+ ** @param [d] pthys [AjPNexus*] AjPNexus object
+ ** @return [void]
+ ** @category delete [AjPNexus] Default destructor
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ void ajNexusDel(AjPNexus* pthys)
+@@ -553,6 +591,8 @@
+ ** @param [d] pthys [AjPNexusTaxa*] AjPNexusTaxa object
+ ** @return [void]
+ ** @category delete [AjPNexusTaxa] Default destructor
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ static void nexusTaxaDel(AjPNexusTaxa* pthys)
+@@ -579,6 +619,8 @@
+ ** @param [d] pthys [AjPNexusCharacters*] AjPNexusCharacters object
+ ** @return [void]
+ ** @category delete [AjPNexusCharacters] Default destructor
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ static void nexusCharactersDel(AjPNexusCharacters* pthys)
+@@ -618,6 +660,8 @@
+ ** @param [d] pthys [AjPNexusUnaligned*] AjPNexusUnaligned object
+ ** @return [void]
+ ** @category delete [AjPNexusUnaligned] Default destructor
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ static void nexusUnalignedDel(AjPNexusUnaligned* pthys)
+@@ -650,6 +694,8 @@
+ ** @param [d] pthys [AjPNexusDistances*] AjPNexusDistances object
+ ** @return [void]
+ ** @category delete [AjPNexusDistances] Default destructor
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ static void nexusDistancesDel(AjPNexusDistances* pthys)
+@@ -680,6 +726,8 @@
+ ** @param [d] pthys [AjPNexusSets*] AjPNexusSets object
+ ** @return [void]
+ ** @category delete [AjPNexusSets] Default destructor
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ static void nexusSetsDel(AjPNexusSets* pthys)
+@@ -715,6 +763,8 @@
+ ** @param [d] pthys [AjPNexusAssumptions*] AjPNexuAssumptionss object
+ ** @return [void]
+ ** @category delete [AjPNexusAssumptions] Default destructor
++**
++** @release 2.9.0
+ ******************************************************************************/
+ 
+ static void nexusAssumptionsDel(AjPNexusAssumptions* pthys)
+@@ -750,6 +800,8 @@
+ ** @param [d] pthys [AjPNexusCodons*] AjPNexusCodons object
+ ** @return [void]
+ ** @category delete [AjPNexusCodons] Default destructor
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ static void nexusCodonsDel(AjPNexusCodons* pthys)
+@@ -780,6 +832,8 @@
+ ** @param [d] pthys [AjPNexusTrees*] AjPNexusTrees object
+ ** @return [void]
+ ** @category delete [AjPNexusTrees] Default destructor
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ static void nexusTreesDel(AjPNexusTrees* pthys)
+@@ -802,13 +856,15 @@
+ 
+ 
+ 
+-/* @funcstatic nexusNotesDel ************************************************
++/* @funcstatic nexusNotesDel **************************************************
+ **
+ ** Destructor for AjPNexusNotes
+ **
+ ** @param [d] pthys [AjPNexusNotes*] AjPNexusNotes object
+ ** @return [void]
+ ** @category delete [AjPNexusNotes] Default destructor
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ static void nexusNotesDel(AjPNexusNotes* pthys)
+@@ -841,6 +897,8 @@
+ ** @param [w] list [AjPList] List of block records
+ ** @param [r] blockname [const AjPStr] Block name
+ ** @return [AjBool] ajTrue on success
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ static AjBool nexusBlockSave(AjPNexus thys, AjPList list,
+@@ -905,7 +963,7 @@
+ 
+ 
+ 
+-/* @funcstatic nexusCommand ********************************************
++/* @funcstatic nexusCommand ***************************************************
+ **
+ ** Finds the next command and command string in a block
+ **
+@@ -913,6 +971,8 @@
+ ** @param [w] command [AjPStr*] Command name
+ ** @param [w] cmdstr [AjPStr*] Command string
+ ** @return [AjBool] ajTrue on success
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ static AjBool nexusCommand(AjPList list, AjPStr* command, AjPStr* cmdstr)
+@@ -944,6 +1004,8 @@
+ 		{
+ 		    ajRegPre(endcommand, &tmpstr);
+ 		    ajStrAssignS(cmdstr, tmpstr);
++                    ajStrDel(&tmpstr);
++                    ajStrDel(&rdline);
+ 
+ 		    return ajTrue;
+ 		}
+@@ -957,6 +1019,8 @@
+ 	    {
+ 		ajRegPre(endcommand, &tmpstr);
+ 		ajStrAppendS(cmdstr, tmpstr);
++                ajStrDel(&tmpstr);
++                ajStrDel(&rdline);
+ 
+ 		return ajTrue;
+ 	    }
+@@ -970,19 +1034,23 @@
+ 	}
+     }
+ 
++    ajStrDel(&rdline);
++
+     return ajFalse;
+ }
+ 
+ 
+ 
+ 
+-/* @funcstatic nexusParseTaxa ********************************************
++/* @funcstatic nexusParseTaxa *************************************************
+ **
+ ** Parses Nexus commands for a Taxa block
+ **
+ ** @param [w] thys [AjPNexus] Nexus object
+ ** @param [u] list [AjPList] List of block records
+ ** @return [AjBool] ajTrue on success
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ static AjBool nexusParseTaxa(AjPNexus thys, AjPList list)
+@@ -1024,6 +1092,8 @@
+ 	    if (!thys->Taxa->Ntax)
+ 	    {
+ 		ajDebug("nexusParseTaxa failed: dimension Ntax not found\n");
++                ajStrDel(&command);
++                ajStrDel(&cmdstr);
+ 
+ 		return ajFalse;
+ 	    }
+@@ -1034,12 +1104,17 @@
+ 	    {
+ 		ajDebug("nexusParseTaxa failed: Ntax %d read %d TaxLabels\n",
+ 			thys->Taxa->Ntax, i);
++                ajStrDel(&command);
++                ajStrDel(&cmdstr);
+ 
+ 		return ajFalse;
+ 	    }
+ 	}
+     }
+ 
++    ajStrDel(&command);
++    ajStrDel(&cmdstr);
++
+     if (!thys->Taxa->Ntax)
+     {
+ 	ajDebug("nexusParseTaxa failed: taxa data not found\n");
+@@ -1061,6 +1136,8 @@
+ ** @param [u] list [AjPList] List of block records
+ ** @param [r] newtaxa [AjBool] If true, set NewTaxa
+ ** @return [AjBool] ajTrue on success
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ static AjBool nexusParseCharacters(AjPNexus thys, AjPList list, AjBool newtaxa)
+@@ -1145,6 +1222,8 @@
+ 	    if(!nexusGetInt(cmdstr, dimexp3, 1, &thys->Characters->Nchar))
+ 	    {
+ 		ajDebug("nexusParseCharacters failed: nchar undefined\n");
++                ajStrDel(&command);
++                ajStrDel(&cmdstr);
+ 		return ajFalse;
+ 	    }
+ 	}
+@@ -1197,6 +1276,8 @@
+ 		ajDebug("nexusParseCharacters "
+ 			"failed: Ntax %d read %d TaxLabels\n",
+ 			thys->Taxa->Ntax, i);
++                ajStrDel(&command);
++                ajStrDel(&cmdstr);
+ 
+ 		return ajFalse;
+ 	    }
+@@ -1238,6 +1319,9 @@
+ 	}
+     }
+ 
++    ajStrDel(&command);
++    ajStrDel(&cmdstr);
++
+     if (!thys->Characters->Nchar)
+     {
+ 	ajDebug("nexusParseCharacters failed: dimension nchar undefined\n");
+@@ -1258,6 +1342,8 @@
+ ** @param [w] thys [AjPNexus] Nexus object
+ ** @param [u] list [AjPList] List of block records
+ ** @return [AjBool] ajTrue on success
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ static AjBool nexusParseUnaligned(AjPNexus thys, AjPList list)
+@@ -1336,6 +1422,9 @@
+ 	}
+     }
+ 
++    ajStrDel(&command);
++    ajStrDel(&cmdstr);
++
+     return ajTrue;
+ }
+ 
+@@ -1349,6 +1438,8 @@
+ ** @param [w] thys [AjPNexus] Nexus object
+ ** @param [u] list [AjPList] List of block records
+ ** @return [AjBool] ajTrue on success
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ static AjBool nexusParseDistances(AjPNexus thys, AjPList list)
+@@ -1447,19 +1538,24 @@
+ 	}
+     }
+ 
++    ajStrDel(&command);
++    ajStrDel(&cmdstr);
++
+     return ajTrue;
+ }
+ 
+ 
+ 
+ 
+-/* @funcstatic nexusParseSets ********************************************
++/* @funcstatic nexusParseSets *************************************************
+ **
+ ** Parses Nexus commands for a Sets block
+ **
+ ** @param [w] thys [AjPNexus] Nexus object
+ ** @param [u] list [AjPList] List of block records
+ ** @return [AjBool] ajTrue on success
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ static AjBool nexusParseSets(AjPNexus thys, AjPList list)
+@@ -1505,6 +1601,9 @@
+ 	}
+     }
+ 
++    ajStrDel(&command);
++    ajStrDel(&cmdstr);
++
+     return ajTrue;
+ }
+ 
+@@ -1518,6 +1617,8 @@
+ ** @param [w] thys [AjPNexus] Nexus object
+ ** @param [u] list [AjPList] List of block records
+ ** @return [AjBool] ajTrue on success
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ static AjBool nexusParseAssumptions(AjPNexus thys, AjPList list)
+@@ -1594,19 +1695,24 @@
+ 	}
+     }
+ 
++    ajStrDel(&command);
++    ajStrDel(&cmdstr);
++
+     return ajTrue;
+ }
+ 
+ 
+ 
+ 
+-/* @funcstatic nexusParseCodons ********************************************
++/* @funcstatic nexusParseCodons ***********************************************
+ **
+ ** Parses Nexus commands for a Codons block
+ **
+ ** @param [w] thys [AjPNexus] Nexus object
+ ** @param [u] list [AjPList] List of block records
+ ** @return [AjBool] ajTrue on success
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ static AjBool nexusParseCodons(AjPNexus thys, AjPList list)
+@@ -1640,19 +1746,24 @@
+ 	}
+     }
+ 
++    ajStrDel(&command);
++    ajStrDel(&cmdstr);
++
+     return ajTrue;
+ }
+ 
+ 
+ 
+ 
+-/* @funcstatic nexusParseTrees ********************************************
++/* @funcstatic nexusParseTrees ************************************************
+ **
+ ** Parses Nexus commands for a Trees block
+ **
+ ** @param [w] thys [AjPNexus] Nexus object
+ ** @param [u] list [AjPList] List of block records
+ ** @return [AjBool] ajTrue on success
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ static AjBool nexusParseTrees(AjPNexus thys, AjPList list)
+@@ -1681,19 +1792,24 @@
+ 	}
+     }
+ 
++    ajStrDel(&command);
++    ajStrDel(&cmdstr);
++
+     return ajTrue;
+ }
+ 
+ 
+ 
+ 
+-/* @funcstatic nexusParseNotes ********************************************
++/* @funcstatic nexusParseNotes ************************************************
+ **
+ ** Parses Nexus commands for a Notes block
+ **
+ ** @param [w] thys [AjPNexus] Nexus object
+ ** @param [u] list [AjPList] List of block records
+ ** @return [AjBool] ajTrue on success
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ static AjBool nexusParseNotes(AjPNexus thys, AjPList list)
+@@ -1722,6 +1838,9 @@
+ 	}
+     }
+ 
++    ajStrDel(&command);
++    ajStrDel(&cmdstr);
++
+     return ajTrue;
+ }
+ 
+@@ -1737,6 +1856,8 @@
+ ** @param [u] exp [AjPRegexp] Compiled regular expression for parsing
+ ** @param [w] dest [AjPStr**] Array generated
+ ** @return [ajint] Number of strings returned
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ static ajint nexusGetArray(AjPStr src, AjPRegexp exp,
+@@ -1779,6 +1900,8 @@
+ ** @param [r] isub [ajint] Substring number to extract
+ ** @param [w] dest [AjPStr*] String generated
+ ** @return [AjBool] ajTrue on success
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ static AjBool nexusGetStr(AjPStr src, AjPRegexp exp, ajint isub, AjPStr* dest)
+@@ -1805,6 +1928,8 @@
+ ** @param [r] isub [ajint] Substring number to extract
+ ** @param [w] dest [char*] String generated
+ ** @return [AjBool] ajTrue on success
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ static AjBool nexusGetChar(AjPStr src, AjPRegexp exp, ajint isub, char* dest)
+@@ -1841,6 +1966,8 @@
+ ** @param [r] isub [ajint] Substring number to extract
+ ** @param [w] dest [ajuint*] Integer generated
+ ** @return [AjBool] ajTrue on success
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ static AjBool nexusGetInt(AjPStr src, AjPRegexp exp, ajint isub, ajuint* dest)
+@@ -1860,7 +1987,7 @@
+ 
+ 
+ 
+-/* @funcstatic nexusGetBool **************************************************
++/* @funcstatic nexusGetBool ***************************************************
+ **
+ ** Sets a nexus bool from a parsed nexus command in the form [no]name.
+ ** We know name is found, we test for the "no" part.
+@@ -1870,6 +1997,8 @@
+ ** @param [r] isub [ajint] Substring number to extract
+ ** @param [w] dest [AjBool*] Boolean generated
+ ** @return [AjBool] ajTrue on success
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ static AjBool nexusGetBool(AjPStr src, AjPRegexp exp, ajint isub, AjBool* dest)
+@@ -1893,7 +2022,7 @@
+ 
+ 
+ 
+-/* @funcstatic nexusVocab ***************************************************
++/* @funcstatic nexusVocab *****************************************************
+ **
+ ** Tests a string against a controlled vocabulary
+ **
+@@ -1901,6 +2030,8 @@
+ ** @param [r] src [const AjPStr] String to be tested
+ ** @param [r] vocab [const char* []] List of known values, ending in a NULL
+ ** @return [AjBool] ajTrue on success
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ static AjBool nexusVocab(const char* title, const AjPStr src,
+@@ -1927,6 +2058,8 @@
+ **
+ ** @param [r] thys [const AjPNexus] nexus object
+ ** @return [void]
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ void ajNexusTrace(const AjPNexus thys)
+@@ -2430,6 +2563,8 @@
+ **
+ ** @param [r] thys [const AjPNexus] Nexus object
+ ** @return [AjPStr*] taxa string array, NULL terminated, read only
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ AjPStr* ajNexusGetTaxa(const AjPNexus thys)
+@@ -2452,6 +2587,8 @@
+ **
+ ** @param [r] thys [const AjPNexus] Nexus object
+ ** @return [ajuint] Number of taxa
++**
++** @release 2.8.0
+ ** @@
+ ******************************************************************************/
+ 
+@@ -2478,6 +2615,8 @@
+ **
+ ** @param [u] thys [AjPNexus] Nexus object
+ ** @return [AjPStr*] taxa string array, NULL terminated, read only
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ AjPStr* ajNexusGetSequences(AjPNexus thys)
+@@ -2502,6 +2641,8 @@
+ **
+ ** @param [u] thys [AjPNexus] Nexus object
+ ** @return [AjBool] ajTrue on success
++**
++** @release 2.8.0
+ ******************************************************************************/
+ 
+ static AjBool nexusSetSequences(AjPNexus thys)
+@@ -2591,7 +2732,7 @@
+ 
+ 	for (i=0; thys->Taxa->TaxLabels[i]; i++)
+ 	{
+-	    seqstr = ajStrNewRes(thys->Characters->Nchar+1);
++            seqstr = ajStrNewRes(thys->Characters->Nchar+1);
+ 	    ajTablePut(seqtab, thys->Taxa->TaxLabels[i], seqstr);
+ 	    seqstr = NULL;
+ 	}
+@@ -2599,6 +2740,7 @@
+     else
+     {
+ 	AJCNEW0(thys->Taxa->TaxLabels, (thys->Ntax+1));
++        ajDebug("thys->Taxa->TaxLabels 0..%u\n", (thys->Ntax+1));
+     }
+ 
+     taxlabel = NULL;
+@@ -2609,6 +2751,7 @@
+ 	ajStrAssignS(&rdline, thys->Characters->Matrix[i]);
+ 	ajStrRemoveWhiteExcess(&rdline);
+ 
++        ajDebug("rdline: '%S'\n", rdline);
+ 	if (!taxlabel || thys->Characters->Interleave ||
+ 	    (ajStrGetLen(seqstr) >= thys->Characters->Nchar))
+ 	{				/* next tax label */
+@@ -2617,13 +2760,23 @@
+ 
+ 	    ajRegSubI(word, 0, &taxlabel);
+ 	    ajRegPost(word, &tmpstr);
++            ajDebug("taxlabel '%S' rest '%S'\n", taxlabel, tmpstr);
+ 	    ajStrAssignS(&rdline, tmpstr);
+ 	    ajStrQuoteStripAll(&taxlabel);
++            ajDebug("unquoted taxlabel %p '%S'\n", taxlabel, taxlabel);
+ 
+ 	    if (!havetaxa)
+ 	    {
++                ajDebug("ajTablePut itax.%u label %p '%S'\n",
++                        itax,
++                        thys->Taxa->TaxLabels[itax],
++                        thys->Taxa->TaxLabels[itax]);
+ 		ajStrAssignS(&thys->Taxa->TaxLabels[itax], taxlabel);
+ 		seqstr = ajStrNewRes(thys->Characters->Nchar+1);
++                ajDebug("ajTablePut itax %u label %p '%S'\n",
++                        itax,
++                        thys->Taxa->TaxLabels[itax],
++                        thys->Taxa->TaxLabels[itax]);
+ 		ajTablePut(seqtab, thys->Taxa->TaxLabels[itax], seqstr);
+ 		seqstr = NULL;
+ 		itax++;
+@@ -2631,8 +2784,10 @@
+ 		    havetaxa = ajTrue;
+ 	    }
+ 
++            ajDebug("havetaxa: %B taxlabel '%S'\n", havetaxa, taxlabel);
+ 	    seqstr = ajTableFetchmodS(seqtab, taxlabel);
+ 
++            ajDebug("seqstr '%S'\n", seqstr);
+ 	    if (!seqstr)
+ 	    {
+ 		ajErr("Unknown taxon '%S' in nexus data", taxlabel);
+@@ -2650,12 +2805,12 @@
+ 	{
+ 	    ajRegSubI(word, 0, &tmpstr);
+ 	    ajStrAppendS(&seqstr, tmpstr);
+-	    ajTablePut(seqtab, taxlabel, seqstr); /* just to make sure */
+ 	    ajRegPost(word, &tmpstr);
+ 	    ajStrAssignS(&rdline, tmpstr);
+ 	}
+ 
+ 	ajStrExchangeKK(&seqstr, gapch, '-');
++        ajDebug("seqstr updated '%S'\n", seqstr);
+     }
+ 
+     ajRegFree(&word);
+@@ -2683,6 +2838,8 @@
+     }
+ 
+     ajTableFree(&seqtab);
++    ajStrDel(&firstseq);
++    ajStrDel(&taxlabel);
+ 
+     return ajTrue;
+ }
+@@ -2700,6 +2857,8 @@
+ ** @param  [d] pthis [AjPStr**] Pointer to the string array to be deleted.
+ **         The pointer is always deleted.
+ ** @return [void]
++**
++** @release 4.0.0
+ ** @@
+ ******************************************************************************/
+ 
+--- emboss-6.4.0.orig/ajax/core/ajpat.c
++++ emboss-6.4.0/ajax/core/ajpat.c
+@@ -752,6 +752,8 @@
+ 	default:
+ 	    mismreg = ajRegCompC("<mismatch=(\\d+)>");
+ 
++            mismatch=mismatches; /* set for first pattern */
++
+ 	    while (ajBuffreadLineTrim(infile,&line))
+ 	    {
+ 		if (ajStrGetCharFirst(line) == '>')
+@@ -762,7 +764,7 @@
+ 					    mismatch);
+ 			ajStrSetClear(&name);
+ 			ajStrSetClear(&pat);
+-			mismatch=mismatches;
++			mismatch=mismatches; /* reset for next pattern */
+ 		    }
+ 
+ 		    ajStrCutStart(&line,1);
+--- emboss-6.4.0.orig/ajax/core/ajquery.c
++++ emboss-6.4.0/ajax/core/ajquery.c
+@@ -1609,7 +1609,14 @@
+     fmtstat = ajRegExec(queryRegFmt, *Pqry);
+ 
+     if(!fmtstat)
++    {
++        if(ajStrGetLen(textin->Formatstr))
++        {
++            if(findformat(textin->Formatstr, &textin->Format))
++                ajStrAssignS(&qry->Formatstr, textin->Formatstr);
++        }
+ 	return NULL;
++    }
+ 
+     ajRegSubI(queryRegFmt, 1, &queryFormat);
+     ajRegSubI(queryRegFmt, 2, Pqry);
+@@ -2716,15 +2723,21 @@
+                         ajDebug("ajQueryAddFieldOrC.i '%s' '%S'\n",
+                                 "id", qrystring);
+ 
+-                        ajQueryAddFieldElseC(qry, "acc",
+-                                             MAJSTRGETPTR(qrystring));
+-                        ajDebug("ajQueryAddFieldElseC.i '%s' '%S'\n",
+-                                "acc", qrystring);
++                        if(qry->HasAcc && ajQueryKnownFieldC(qry, "acc"))
++                        {
++                            ajQueryAddFieldElseC(qry, "acc",
++                                                 MAJSTRGETPTR(qrystring));
++                            ajDebug("ajQueryAddFieldElseC.i '%s' '%S'\n",
++                                    "acc", qrystring);
++                        }
+                         
+-                        ajQueryAddFieldElseC(qry, "sv",
+-                                             MAJSTRGETPTR(qrystring));
+-                        ajDebug("ajQueryAddFieldElseC.i '%s' '%S'\n",
+-                                "sv", qrystring);
++                        if(ajQueryKnownFieldC(qry, "sv"))
++                        {
++                            ajQueryAddFieldElseC(qry, "sv",
++                                                 MAJSTRGETPTR(qrystring));
++                            ajDebug("ajQueryAddFieldElseC.i '%s' '%S'\n",
++                                    "sv", qrystring);
++                        }
+                     }
+                     ajStrAssignS(&lastoper, operstr);
+                     ajStrTrimWhite(&lastoper);
+--- emboss-6.4.0.orig/ajax/core/ajrange.c
++++ emboss-6.4.0/ajax/core/ajrange.c
+@@ -179,7 +179,7 @@
+                                   ajuint minsize, ajuint size)
+ {
+     AjPRange ret = NULL;
+-    AjPFile infile;
++    AjPFile infile = NULL;
+     AjPStr line   = NULL;
+     char whiteSpace[] = " \t\n\r";
+     char notSpace[]   = "\n\r";
+@@ -189,9 +189,9 @@
+     ajuint numone;
+     ajuint numtwo;
+     
+-    AjPStr one;
+-    AjPStr two;
+-    AjPStr text;
++    AjPStr one = NULL;
++    AjPStr two = NULL;
++    AjPStr text = NULL;
+     
+     AjPList onelist;
+     AjPList twolist;
+@@ -229,13 +229,17 @@
+ 	one = ajStrNew();
+ 	ajStrTokenNextParse(&tokens, &one);
+ 	ajListstrPushAppend(onelist, one);
++        one = NULL;
+ 	
+ 	two = ajStrNew();
+ 	ajStrTokenNextParse(&tokens, &two);
+ 
+ 	if(ajStrGetLen(two))
+-	    ajListstrPushAppend(twolist, two);
+-	else
++	{
++            ajListstrPushAppend(twolist, two);
++            two = NULL;
++        }
++        else
+ 	{
+ 	    ajWarn("Odd integer(s) in range specification:\n%S\n", line);
+ 
+@@ -247,10 +251,14 @@
+ 	ajStrTokenNextParseC(&tokens, notSpace, &text);
+ 	ajStrTrimWhite(&text);
+ 	ajListstrPushAppend(textlist, text);
++	text = NULL;
+ 	
+ 	ajStrTokenDel( &tokens);	
+     }
+     
++    ajFileClose(&infile);
++    ajStrDel(&line);
++
+     /* now we know how many pairs of numbers to store, create ajRange object */
+     n  = ajListstrGetLength(onelist);
+     if(size)
+@@ -331,6 +339,7 @@
+ 	/* do the text */
+ 	ajListstrPop(textlist, &text);
+ 	ret->text[k] = text;
++        text = NULL;
+     }
+ 
+ 
+--- emboss-6.4.0.orig/ajax/core/ajseqabi.c
++++ emboss-6.4.0/ajax/core/ajseqabi.c
+@@ -181,6 +181,7 @@
+ 	    *machine = ajStrNewRes(l+1);
+ 	    ajReadbinBinary(fp,1,l,(void*)ajStrGetuniquePtr(machine));
+ 	    *(ajStrGetuniquePtr(machine)+l)='\0';
++            ajStrSetValid(machine);
+ 	}
+ 	else
+ 	    return ajFalse;
+@@ -961,6 +962,7 @@
+ 	*sample = ajStrNewRes(l+1);
+ 	ajReadbinBinary(fp,1,l,(void*)ajStrGetuniquePtr(sample));
+ 	*(ajStrGetuniquePtr(sample)+l)='\0';
++        ajStrSetValid(sample);
+     }
+ 
+     return ajTrue;
+--- emboss-6.4.0.orig/ajax/core/ajseqread.c
++++ emboss-6.4.0/ajax/core/ajseqread.c
+@@ -5497,6 +5497,7 @@
+ static AjBool seqReadRaw(AjPSeq thys, AjPSeqin seqin)
+ {
+     AjPFilebuff buff;
++    const char* cp;
+     AjPFile fp;
+     AjBool ok = ajFalse;
+     ajulong filestat = 0L;
+@@ -5506,83 +5507,139 @@
+     AjPStr buf = NULL;
+     char *cbuf;
+     AjPStr tmpseq = NULL;
+-
+-    if(!seqRegRawNonseq)
+-	seqRegRawNonseq = ajRegCompC("[^A-Za-z0-9 \t\n\r*-]");
++    size_t iread;
++    
++    ajDebug("seqReadRaw\n");
+ 
+     buff = seqin->Input->Filebuff;
+     fp = ajFilebuffGetFile(buff);
+ 
+-    ajDebug("seqReadRaw\n");
++    if(!seqRegRawNonseq)
++	seqRegRawNonseq = ajRegCompC("[^A-Za-z0-9 \t\n\r*-]");
+ 
+     if(ajFilebuffIsEnded(buff))
+ 	return ajFalse;
+ 
+-    buf = ajStrNewRes(4096);
+-    ajStrSetValidLen(&buf, inc);
+-    cbuf = ajStrGetuniquePtr(&buf);
+-
+-    filestat = ajFileSeek(fp, 0L, SEEK_END);
+-    filesize = ajFileResetPos(fp);
+-    filestat = ajFileSeek(fp, (ajlong) filestat, 0);
++    filestat = ajFileSeek(fp, 0L, SEEK_CUR);
+ 
+-    ok = ajTrue;
++    if(filestat)
++    {
++        /* not a file - cannot use binary, so we can only read the buffer */
++        while(ajBuffreadLineStore(buff, &seqReadLine,
++                                  seqin->Input->Text, &thys->TextPtr))
++        {
++            ajDebug("read '%S'\n", seqReadLine);
+ 
+-    for(i=0; i < filesize; i += inc)
++            cp = ajStrGetPtr(seqReadLine);
++            if(strlen(cp) != ajStrGetLen(seqReadLine))
++            {
++                ajDebug("seqReadRaw: Null character found in line: %S\n",
++                        seqReadLine);
++                ajFilebuffResetStore(buff, seqin->Input->Text, &thys->TextPtr);
++                ajStrAssignClear(&thys->Seq);
++
++                return ajFalse;
++            }
++        
++            if(ajRegExec(seqRegRawNonseq, seqReadLine))
++            {
++                ajDebug("seqReadRaw: Bad character found in line: %S\n",
++                        seqReadLine);
++                ajFilebuffResetStore(buff, seqin->Input->Text, &thys->TextPtr);
++                ajStrAssignClear(&thys->Seq);
++
++                return ajFalse;
++            }
++            seqAppend(&thys->Seq, seqReadLine);
++            seqin->Input->Records++;
++            ajDebug("read %d lines\n", seqin->Input->Records);
++        }
++    }
++    else
+     {
+-        if((i+inc) > filesize)
++        if(ajFilebuffIsEnded(buff))
+         {
+-	  inc = (ajuint) (filesize - i);
+-            ajStrSetValidLen(&buf, inc);
++            ajFileSeek(fp, 0L, SEEK_END);
++            return ajFalse;
+         }
+ 
+-        ajReadbinBinary(fp, inc, 1, cbuf);
+-        cbuf[inc] = '\0';
++        buf = ajStrNewRes(4096);
++        ajStrSetValidLen(&buf, inc);
++        cbuf = ajStrGetuniquePtr(&buf);
++
++        filestat = ajFileSeek(fp, 0L, SEEK_END);
++        filesize = ajFileResetPos(fp);
++        filestat = ajFileSeek(fp, 0L, SEEK_SET);
+ 
+-        if(strlen(cbuf) != inc)
++        if(!filesize)
+         {
+-	    ajDebug("seqReadRaw: Null character found in line: %s\n",
+-		    cbuf);
+-            ok = ajFalse;
+-            break;
++            ajFileSeek(fp,(ajlong) filesize, SEEK_SET);
++            return ajFalse;
+         }
++        
++        ok = ajTrue;
+ 
+-	if(ajRegExec(seqRegRawNonseq, buf))
+-	{
+-	    ajDebug("seqReadRaw: Bad character found in line: %s\n",
+-		    cbuf);
+-            ok = ajFalse;
+-            break;
+-        }
++        for(i=0; i < filesize; i += inc)
++        {
++            if((i+inc) > filesize)
++            {
++                inc = (ajuint) (filesize - i);
++                ajStrSetValidLen(&buf, inc);
++            }
+ 
+-        ajStrAssignC(&tmpseq, cbuf);
++            iread = ajReadbinBinary(fp, inc, 1, cbuf);
++            cbuf[inc] = '\0';
+ 
+-        if(seqin->Input->Text)
+-            ajStrAppendS(&thys->TextPtr, tmpseq);
++            if(strlen(cbuf) != iread)
++            {
++                ajDebug("seqReadRaw: Null character found in line: %s\n",
++                        cbuf);
++                ok = ajFalse;
++                break;
++            }
+ 
+-	seqAppend(&thys->Seq, tmpseq);
+-	seqin->Input->Records++;
+-        ajDebug("read %d lines\n", seqin->Input->Records);
+-    }
++            if(ajRegExec(seqRegRawNonseq, buf))
++            {
++                ajDebug("seqReadRaw: Bad character found in line: %S\n",
++                        seqReadLine);
++                ok = ajFalse;
++                break;
++            }
+ 
+-    ajStrDel(&buf);
+-    ajStrDel(&tmpseq);
++            ajStrAssignC(&tmpseq, cbuf);
+ 
+-    if(!ok)
+-    {
+-        ajFileSeek(fp,(ajlong) filestat,0);
++            if(seqin->Input->Text)
++                ajStrAppendS(&thys->TextPtr, tmpseq);
++
++            seqAppend(&thys->Seq, tmpseq);
++            seqin->Input->Records++;
++            ajDebug("read %d lines\n", seqin->Input->Records);
++        }
+ 
+-        if(seqin->Input->Text)
+-            ajStrAssignC(&thys->TextPtr, "");
++        ajStrDel(&buf);
++        ajStrDel(&tmpseq);
++
++        if(!ok)
++        {
++            ajFileSeek(fp,(ajlong) filestat,0);
++
++            if(seqin->Input->Text)
++                ajStrAssignC(&thys->TextPtr, "");
++
++            ajFilebuffResetPos(buff);
++
++            return ajFalse;
++        }
+ 
+-	ajFilebuffResetPos(buff);
+ 
+-	return ajFalse;
+     }
+ 
+     ajFilebuffClear(buff, -1);
+     buff->File->End=ajTrue;
+ 
++    if(!seqin->Input->Records)
++	return ajFalse;
++
+     return ajTrue;
+ }
+ 
+@@ -7898,6 +7955,7 @@
+     ajuint j;
+     AjPFilebuff buff;
+     AjPStr* seqs = NULL;
++    AjPStr* names = NULL;
+     AjPNexus nexus = NULL;
+ 
+     SeqPMsfData phydata      = NULL;
+@@ -7953,8 +8011,11 @@
+ 	seqs = ajNexusGetTaxa(phydata->Nexus);
+ 	phydata->Names = AJCALLOC(phydata->Nseq, sizeof(*phydata->Names));
+ 
+-	for(j=0;j<phydata->Nseq;j++)
+-	    ajStrAssignS(&phydata->Names[j], seqs[j]);
++        if(seqs)
++        {
++            for(j=0;j<phydata->Nseq;j++)
++                ajStrAssignS(&phydata->Names[j], seqs[j]);
++        }
+ 
+ 	seqin->SeqData = phydata;
+ 	ajDebug("Nexus parsed %d sequences\n", phydata->Nseq);
+@@ -7974,22 +8035,23 @@
+ 	return ajFalse;
+     }
+ 
+-    if (!phydata->Names)		/* finally set from the sequences */
+-    {
+-	seqs = ajNexusGetTaxa(phydata->Nexus);
++    thys->Weight = 1.0;
++    ajStrAssignS(&thys->Seq, seqs[i]);
++
++    if (!phydata->Names)
+ 	phydata->Names = AJCALLOC(phydata->Nseq, sizeof(*phydata->Names));
+ 
++    if (!phydata->Names[0])		/* finally set from the sequences */
++    {
++	names = ajNexusGetTaxa(phydata->Nexus);
+ 	for(j=0;j<phydata->Nseq;j++)
+-	    ajStrAssignS(&phydata->Names[j], seqs[j]);
++	    ajStrAssignS(&phydata->Names[j], names[j]);
+     }
+ 
+     ajDebug("returning [%d] '%S'\n", i, phydata->Names[i]);
+ 
+     ajStrAssignS(&thys->Name, phydata->Names[i]);
+ 
+-    thys->Weight = 1.0;
+-    ajStrAssignS(&thys->Seq, seqs[i]);
+-
+     phydata->Count++;
+ 
+     if(phydata->Count >= phydata->Nseq)
+@@ -13827,7 +13889,7 @@
+ 	ajStrAssignC(&seqFtFmtGff, "gff3");
+ 
+     if(!seqRegGff3Typ)
+-	seqRegGff3Typ = ajRegCompC("^#!(.*)");
++	seqRegGff3Typ = ajRegCompC("^#!Type (.*)");
+ 
+     ok = ajBuffreadLineStore(buff, &seqReadLine,
+ 			    seqin->Input->Text, &thys->TextPtr);
+@@ -13885,7 +13947,8 @@
+ 
+ 	if(ajRegExec(seqRegGff3Typ, seqReadLine))
+ 	{
+-	    ajFmtPrintS(&outstr, "%S\n", seqReadLine);
++ 	    ajRegSubI(seqRegGff3Typ, 1, &typstr);
++ 	    ajFmtPrintS(&outstr, "#!Type %S", typstr);
+ 	}
+ 
+ 	ok = ajBuffreadLineStore(buff, &seqReadLine,
+@@ -13966,7 +14029,7 @@
+ 	ajFeattabinDel(&seqin->Ftquery);
+ 	seqin->Ftquery = ajFeattabinNewSSF(seqFtFmtGff, thys->Name,
+ 					   ajStrGetPtr(seqin->Type), ftfile);
+-	ajDebug("GFF FEAT TabIn %x\n", seqin->Ftquery);
++	ajDebug("GFF3 FEAT TabIn %x\n", seqin->Ftquery);
+ 	ftfile = NULL;
+ 	ajFeattableDel(&seqin->Fttable);
+ 	ajFeattableDel(&thys->Fttable);
+--- emboss-6.4.0.orig/ajax/ensembl/ensdatabaseadaptor.c
++++ emboss-6.4.0/ajax/ensembl/ensdatabaseadaptor.c
+@@ -156,8 +156,8 @@
+ ** @argrule Ini dbc [EnsPDatabaseconnection] Ensembl Database Connection
+ ** @argrule Ini database [AjPStr] Database name
+ ** @argrule Ini species [AjPStr] Species
+-** @argrule Ini dbag [EnsEDatabaseadaptorGroup] Ensembl Database Adaptor Group
+-** enumeration
++** @argrule Ini dbag [EnsEDatabaseadaptorGroup]
++** Ensembl Database Adaptor Group enumeration
+ ** @argrule Ini multi [AjBool] Multiple species
+ ** @argrule Ini identifier [ajuint] Species identifier
+ ** @argrule Url url [const AjPStr] Uniform Resource Locator
+@@ -239,7 +239,7 @@
+         return NULL;
+ 
+     collectionre =
+-        ajRegCompC("^\\w+_collection_([a-z]+)(?:_\\d+)?_(\\d+)_\\w+");
++        ajRegCompC("^(\\w+)_collection_([a-z]+)(?:_\\d+)?_(\\d+)_\\w+");
+ 
+     multire =
+         ajRegCompC("^ensembl_([a-z]+)(_\\w+?)*?(?:_\\d+)?_(\\d+)$");
+@@ -254,10 +254,12 @@
+         /* Ensembl Collection databases have to be matched first. */
+ 
+         group     = ajStrNew();
++        prefix    = ajStrNew();
+         swversion = ajStrNew();
+ 
+-        ajRegSubI(collectionre, 1, &group);
+-        ajRegSubI(collectionre, 2, &swversion);
++        ajRegSubI(collectionre, 1, &prefix);
++        ajRegSubI(collectionre, 2, &group);
++        ajRegSubI(collectionre, 3, &swversion);
+ 
+         if(ajStrMatchCaseC(swversion, ensSoftwareVersion))
+         {
+@@ -290,6 +292,7 @@
+         }
+ 
+         ajStrDel(&group);
++        ajStrDel(&prefix);
+         ajStrDel(&swversion);
+     }
+     else if(ajRegExec(multire, database))
+@@ -417,6 +420,9 @@
+ **
+ ** Constructor for an Ensembl Database Adaptor with initial values.
+ **
++** If a database name has not been provided, the database name of the
++** Ensembl Database Connection will be used.
++**
+ ** Ensembl Database Adaptors are singleton objects in the sense that a single
+ ** instance of an Ensembl Database Adaptor connected to a particular database
+ ** is sufficient to instantiate any number of Ensembl Object Adaptors from the
+@@ -430,12 +436,10 @@
+ **
+ ** @cc Bio::EnsEMBL::DBSQL::DBAdaptor::new
+ ** @param [u] dbc [EnsPDatabaseconnection] Ensembl Database Connection
+-** @param [u] database [AjPStr] Database name (optional). If not provided, the
+-**                              database name in the Database Connection will
+-**                              be used.
++** @param [uN] database [AjPStr] Database name
+ ** @param [u] species [AjPStr] Species
+-** @param [u] dbag [EnsEDatabaseadaptorGroup] Ensembl Database Adaptor Group
+-** enumeration
++** @param [u] dbag [EnsEDatabaseadaptorGroup]
++** Ensembl Database Adaptor Group enumeration
+ ** @param [r] multi [AjBool] Multiple species
+ ** @param [r] identifier [ajuint] Species identifier
+ **
+@@ -555,15 +559,15 @@
+ 
+ /* @section destructors *******************************************************
+ **
+-** Destruction destroys all internal data structures and frees the
+-** memory allocated for an Ensembl Database Adaptor object.
++** Destruction destroys all internal data structures and frees the memory
++** allocated for an Ensembl Database Adaptor object.
+ **
+ ** @fdata [EnsPDatabaseadaptor]
+ **
+-** @nam3rule Del Destroy (free) an Ensembl Database Adaptor object
++** @nam3rule Del Destroy (free) an Ensembl Database Adaptor
+ **
+-** @argrule * Pdba [EnsPDatabaseadaptor*] Ensembl Database Adaptor
+-**                                        object address
++** @argrule * Pdba [EnsPDatabaseadaptor*]
++** Ensembl Database Adaptor address
+ **
+ ** @valrule * [void]
+ **
+@@ -586,8 +590,7 @@
+ ** @see ensExit
+ ** @see ensRegistryExit
+ **
+-** @param [d] Pdba [EnsPDatabaseadaptor*] Ensembl Database Adaptor
+-**                                        object address
++** @param [d] Pdba [EnsPDatabaseadaptor*] Ensembl Database Adaptor address
+ **
+ ** @return [void]
+ ** @@
+@@ -652,8 +655,8 @@
+ ** @valrule Databaseconnection [EnsPDatabaseconnection]
+ ** Ensembl Database Connection or NULL
+ ** @valrule Species [AjPStr] Species or NULL
+-** @valrule Group [EnsEDatabaseadaptorGroup] Ensembl Database Adaptor Group
+-** enumeration or ensEDatabaseadaptorGroupNULL
++** @valrule Group [EnsEDatabaseadaptorGroup]
++** Ensembl Database Adaptor Group enumeration or ensEDatabaseadaptorGroupNULL
+ ** @valrule Multispecies [AjBool] Multiple species or ajFalse
+ ** @valrule Identifier [ajuint] Species identifier or 0
+ **
+@@ -693,8 +696,8 @@
+ ** @cc Bio::EnsEMBL::DBSQL::DBAdaptor::group
+ ** @param [r] dba [const EnsPDatabaseadaptor] Ensembl Database Adaptor
+ **
+-** @return [EnsEDatabaseadaptorGroup] Ensembl Database Adaptor Group
+-** enumeration or ensEDatabaseadaptorGroupNULL
++** @return [EnsEDatabaseadaptorGroup]
++** Ensembl Database Adaptor Group enumeration or ensEDatabaseadaptorGroupNULL
+ ** @@
+ ******************************************************************************/
+ 
+@@ -793,10 +796,10 @@
+ ** @nam4rule Species Set the species
+ **
+ ** @argrule * dba [EnsPDatabaseadaptor] Ensembl Database Adaptor object
+-** @argrule Databaseconnection dbc [EnsPDatabaseconnection] Ensembl Database
+-** Connection
+-** @argrule Group dbag [EnsEDatabaseadaptorGroup] Ensembl Database Adaptor
+-** Group enumeration
++** @argrule Databaseconnection dbc [EnsPDatabaseconnection]
++** Ensembl Database Connection
++** @argrule Group dbag [EnsEDatabaseadaptorGroup]
++** Ensembl Database Adaptor Group enumeration
+ ** @argrule Identifier identifier [ajuint] Species identifier
+ ** @argrule Multispecies multi [AjBool] Multi-species attribute
+ ** @argrule Species species [AjPStr] Species
+--- emboss-6.4.0.orig/ajax/ensembl/ensdatabaseadaptor.h
++++ emboss-6.4.0/ajax/ensembl/ensdatabaseadaptor.h
+@@ -121,7 +121,7 @@
+ 
+ EnsPDatabaseadaptor ensRegistryGetDatabaseadaptor(
+     EnsEDatabaseadaptorGroup dbag,
+-    const AjPStr alias);
++    AjPStr alias);
+ 
+ EnsPDatabaseadaptor ensRegistryGetReferenceadaptor(EnsPDatabaseadaptor dba);
+ 
+--- emboss-6.4.0.orig/ajax/ensembl/ensregistry.c
++++ emboss-6.4.0/ajax/ensembl/ensregistry.c
+@@ -569,8 +569,6 @@
+     const RegistryPQualityCheck rqc,
+     ajuint level);
+ 
+-static AjPStr registryAliasRegister(const AjPStr alias);
+-
+ static AjBool registryAliasLoadDatabaseconnection(
+     EnsPDatabaseconnection dbc,
+     EnsPDatabaseadaptor dba);
+@@ -2029,6 +2027,8 @@
+ 
+ AjBool ensRegistryLoadServername(AjPStr servername)
+ {
++    ajuint dbid = 0;
++
+     AjBool debug      = AJFALSE;
+     AjBool registered = AJFALSE;
+ 
+@@ -2037,6 +2037,9 @@
+     AjPList svrnames = NULL;
+     AjPList dbnames  = NULL;
+ 
++    AjPRegexp dbidre = NULL;
++
++    AjPStr dbidstr = NULL;
+     AjPStr dbname  = NULL;
+     AjPStr source  = NULL;
+     AjPStr svrname = NULL;
+@@ -2059,6 +2062,8 @@
+     ** List objects must be re-created and freed for each server.
+     */
+ 
++    dbidre = ajRegCompC("SpeciesIdentifier=(\\d+)");
++
+     value = ajStrNew();
+ 
+     svrnames = ajListstrNew();
+@@ -2103,17 +2108,15 @@
+ 
+             registrySourceRegister(source, &registered);
+ 
++            if((debug == ajTrue) && (registered == ajTrue))
++                ajDebug("ensRegistryLoadServername '%S' already "
++                        "registered via source '%S'.\n",
++                        svrname, source);
++
+             ajStrDel(&source);
+ 
+             if(registered == ajTrue)
+-            {
+-                if(debug)
+-                    ajDebug("ensRegistryLoadServername '%S' already "
+-                            "registered.\n",
+-                            svrname);
+-
+                 continue;
+-            }
+ 
+             /*
+             ** Create an Ensembl Database Connection to the AJAX Server for
+@@ -2150,40 +2153,64 @@
+ 
+                 dba = ensDatabaseadaptorNewUrl(value);
+ 
+-                if((ensDatabaseadaptorGetMultispecies(dba) == ajTrue) &&
+-                   (ensDatabaseadaptorGetIdentifier(dba) == 0))
++                if(ensDatabaseadaptorGetMultispecies(dba) == ajTrue)
+                 {
+                     /*
+-                    ** Expand an Ensembl Database Adaptor representing a
+-                    ** collection database into species-specific
+-                    ** Ensembl Database Adaptor objects before registering.
+-                    ** Delete the Ensembl Database Adaptor for the collection.
++                    ** For Ensembl Database Adaptors representing collection
++                    ** databases, the species name needs resetting to the AJAX
++                    ** database name and the species identifier needs parsing
++                    ** from the comment field of the AJAX database definition.
+                     */
+ 
+-                    registryEntryLoadCollection(
+-                        dbc,
+-                        ensDatabaseconnectionGetDatabasename(
+-                            ensDatabaseadaptorGetDatabaseconnection(dba)),
+-                        ensDatabaseadaptorGetGroup(dba));
++                    ensDatabaseadaptorSetSpecies(dba, dbname);
+ 
+-                    ensDatabaseadaptorDel(&dba);
+-                }
+-                else
+-                {
+-                    /*
+-                    ** Register Ensembl Database Adaptor objects for
+-                    ** multi-species and species-specific databases.
+-                    ** Add the species as alias if registered or delete the
+-                    ** Ensembl Database Adaptor if not registered,
+-                    ** successfully.
+-                    */
++                    ajNamSvrGetdbAttrC(svrname, dbname, "comment", &value);
+ 
+-                    if(ensRegistryAddDatabaseadaptor(dba))
+-                        ensRegistryAliasAdd(ensDatabaseadaptorGetSpecies(dba),
+-                                            ensDatabaseadaptorGetSpecies(dba));
++                    if(ajRegExec(dbidre, value))
++                    {
++                        dbid    = 0;
++                        dbidstr = ajStrNew();
++
++                        ajRegSubI(dbidre, 1, &dbidstr);
++
++                        if(ajStrToUint(dbidstr, &dbid))
++                        {
++                            ensDatabaseadaptorSetIdentifier(dba, dbid);
++
++                            ajStrDel(&dbidstr);
++                        }
++                        else
++                        {
++                            ajDebug("ensRegistryLoadServer could not parse a "
++                                    "valid unsigned integer from the "
++                                    "'SpeciesIdentifer=INTEGER' expression in "
++                                    "the comment field of AJAX database "
++                                    "definition for Ensembl collection "
++                                    "database '%S'.\n", dbname);
++
++                            ajStrDel(&dbidstr);
++
++                            ensDatabaseadaptorDel(&dba);
++
++                            continue;
++                        }
++                    }
+                     else
++                    {
++                        ajDebug("ensRegistryLoadServer could not find a "
++                                "'SpeciesIdentifer=INTEGER' entry in the "
++                                "comment field of AJAX database "
++                                "definition for Ensembl collection "
++                                "database '%S'.\n", dbname);
++
+                         ensDatabaseadaptorDel(&dba);
++
++                        continue;
++                    }
+                 }
++
++                if(ensRegistryAddDatabaseadaptor(dba) == ajFalse)
++                    ensDatabaseadaptorDel(&dba);
+             }
+ 
+             ajListIterDel(&dbniter);
+@@ -2196,6 +2223,8 @@
+     ajListIterDel(&svriter);
+     ajListstrFree(&svrnames);
+ 
++    ajRegFree(&dbidre);
++
+     ajStrDel(&value);
+ 
+     if(debug)
+@@ -2370,70 +2399,6 @@
+ 
+ 
+ 
+-/* @funcstatic registryAliasRegister ******************************************
+-**
+-** Check, whether an alias name can be resolved directly or after replacing
+-** underscore characters into a species name. If not, register the alias
+-** without underscore characters and set the alias with underscores as alias.
+-**
+-** @param [r] alias [const AjPStr] Alias name
+-**
+-** @return [AjPStr] Species name or NULL
+-** @@
+-******************************************************************************/
+-
+-static AjPStr registryAliasRegister(const AjPStr alias)
+-{
+-    AjPStr species = NULL;
+-    AjPStr unalias = NULL;
+-
+-    if(!(alias && ajStrGetLen(alias)))
+-        return NULL;
+-
+-    /* Resolve an eventual alias to the species name. */
+-
+-    ensRegistryAliasResolve(alias, &species);
+-
+-    if(!species)
+-    {
+-        /*
+-        ** If this alias has not been registered before, test if it has been
+-        ** registered without underscores.
+-        */
+-
+-        unalias = ajStrNewS(alias);
+-
+-        /*
+-        ** FIXME: Since EMBOSS DBNAMES cannot cope with spaces species names
+-        ** must include underscores.
+-        ajStrExchangeCC(&unalias, "_", " ");
+-        */
+-
+-        ensRegistryAliasResolve(unalias, &species);
+-
+-        if(!species)
+-        {
+-            /*
+-            ** If the alias without underscores has also not been registered
+-            ** before, register it as species before registering the one
+-            ** with underscores as alias.
+-            */
+-
+-            ensRegistryAliasAdd(unalias, unalias);
+-            ensRegistryAliasAdd(unalias, alias);
+-
+-            ensRegistryAliasResolve(alias, &species);
+-        }
+-
+-        ajStrDel(&unalias);
+-    }
+-
+-    return species;
+-}
+-
+-
+-
+-
+ /* @func ensRegistryAliasAdd **************************************************
+ **
+ ** Add a Registry Alias entry to the Ensembl Registry.
+@@ -2861,8 +2826,6 @@
+ 
+             ajStrAssignS(&species, line);
+ 
+-            ensRegistryAliasAdd(species, species);
+-
+             block = ajTrue;
+         }
+     }
+@@ -3387,8 +3350,6 @@
+         ajSqlcolumnToUint(sqlr, &identifier);
+         ajSqlcolumnToStr(sqlr, &species);
+ 
+-        ensRegistryAliasAdd(species, species);
+-
+         dba = ensRegistryNewDatabaseadaptor(dbc,
+                                             dbname,
+                                             species,
+@@ -3699,7 +3660,10 @@
+     if(!alias)
+         return NULL;
+ 
+-    species = registryAliasRegister(alias);
++    ensRegistryAliasResolve(alias, &species);
++
++    if(species == NULL)
++        species = alias;
+ 
+     dba = ensDatabaseadaptorNewIni(dbc,
+                                    database,
+@@ -3801,7 +3765,10 @@
+     if(!alias)
+         return NULL;
+ 
+-    species = registryAliasRegister(alias);
++    ensRegistryAliasResolve(alias, &species);
++
++    if(species == NULL)
++        species = alias;
+ 
+     rsa = ensDatabaseadaptorNewIni(dbc,
+                                    database,
+@@ -4517,13 +4484,13 @@
+ **
+ ** @argrule AllDatabaseadaptors dbag [EnsEDatabaseadaptorGroup]
+ ** Ensembl Database Adaptor Group enumeration
+-** @argrule AllDatabaseadaptors alias [const AjPStr]
++** @argrule AllDatabaseadaptors alias [AjPStr]
+ ** Ensembl Database Adaptor alias name or species name
+ ** @argrule AllDatabaseadaptors dbas [AjPList] AJAX List of
+ ** Ensembl Database Adaptor objects
+ ** @argrule Databaseadaptor dbag [EnsEDatabaseadaptorGroup]
+ ** Ensembl Database Adaptor Group enumeration
+-** @argrule Databaseadaptor alias [const AjPStr]
++** @argrule Databaseadaptor alias [AjPStr]
+ ** Ensembl Database Adaptor alias name or species name
+ ** @argrule Referenceadaptor dba [EnsPDatabaseadaptor] Ensembl Database Adaptor
+ **
+@@ -4549,7 +4516,7 @@
+ **
+ ** @param [uN] dbag [EnsEDatabaseadaptorGroup] Ensembl Database Adaptor Group
+ ** enumeration
+-** @param [rN] alias [const AjPStr] Ensembl Database Adaptor alias name or
++** @param [rN] alias [AjPStr] Ensembl Database Adaptor alias name or
+ ** species name
+ ** @param [u] dbas [AjPList] AJAX List of Ensembl Database Adaptor objects
+ **
+@@ -4558,7 +4525,7 @@
+ ******************************************************************************/
+ 
+ AjBool ensRegistryGetAllDatabaseadaptors(EnsEDatabaseadaptorGroup dbag,
+-                                         const AjPStr alias,
++                                         AjPStr alias,
+                                          AjPList dbas)
+ {
+     void** keyarray = NULL;
+@@ -4593,8 +4560,17 @@
+     if(!dbas)
+         return ajFalse;
+ 
++    /*
++    ** Resolve an alias name into a valid species name. If the alias did not
++    ** resolve into a species name, use the alias directly. If an alias was
++    ** not passed in, it is still NULL, implying all species.
++    */
++
+     ensRegistryAliasResolve(alias, &species);
+ 
++    if(species == NULL)
++        species = alias;
++
+     ajTableToarrayKeysValues(registryEntry, &keyarray, &valarray);
+ 
+     for(i = 0; keyarray[i]; i++)
+@@ -4761,7 +4737,7 @@
+ ** @cc Bio::EnsEMBL::Registry::get_DBAdaptor
+ ** @param [u] dbag [EnsEDatabaseadaptorGroup] Ensembl Database Adaptor Group
+ ** enumeration
+-** @param [r] alias [const AjPStr] Scientific species name or alias name
++** @param [r] alias [AjPStr] Scientific species name or alias name
+ **
+ ** @return [EnsPDatabaseadaptor] Ensembl Database Adaptor or NULL
+ ** @@
+@@ -4769,7 +4745,7 @@
+ 
+ EnsPDatabaseadaptor ensRegistryGetDatabaseadaptor(
+     EnsEDatabaseadaptorGroup dbag,
+-    const AjPStr alias)
++    AjPStr alias)
+ {
+     AjBool debug = AJFALSE;
+ 
+@@ -4797,8 +4773,16 @@
+     if(!alias)
+         return NULL;
+ 
++    /*
++    ** Resolve an alias name into a valid species name. If the alias did not
++    ** resolve into a species name, use the alias directly.
++    */
++
+     ensRegistryAliasResolve(alias, &species);
+ 
++    if(species == NULL)
++        species = alias;
++
+     if(debug)
+         ajDebug("ensRegistryGetDatabaseadaptor alias '%S' -> species '%S'\n",
+                 alias, species);
+--- emboss-6.4.0.orig/ajax/ensembl/ensregistry.h
++++ emboss-6.4.0/ajax/ensembl/ensregistry.h
+@@ -116,7 +116,7 @@
+ AjBool ensRegistryRemoveDatabaseadaptor(EnsPDatabaseadaptor* Pdba);
+ 
+ AjBool ensRegistryGetAllDatabaseadaptors(EnsEDatabaseadaptorGroup dbag,
+-                                         const AjPStr alias,
++                                         AjPStr alias,
+                                          AjPList dbas);
+ 
+ AjPStr ensRegistryGetStableidentifierprefix(EnsPDatabaseadaptor dba);
+--- emboss-6.4.0.orig/emboss/cacheensembl.c
++++ emboss-6.4.0/emboss/cacheensembl.c
+@@ -181,6 +181,11 @@
+                 ajFmtPrintF(outf, "%S\n", dbname);
+ 
+             ajFmtPrintF(cachef, "DBNAME %S [\n", dbname);
++
++            if(ensDatabaseadaptorGetMultispecies(dba) == ajTrue)
++                ajFmtPrintF(cachef, "  comment: \"SpeciesIdentifier=%u\"\n",
++                            ensDatabaseadaptorGetIdentifier(dba));
++
+             ajFmtPrintF(cachef, "  release: \"%s\"\n", ensSoftwareGetVersion());
+             ajFmtPrintF(cachef, "  server:  \"%S\"\n", svrname);
+             ajFmtPrintF(cachef, "  url:     \"%S\"\n", dbcurl);
+--- emboss-6.4.0.orig/emboss/cirdna.c
++++ emboss-6.4.0/emboss/cirdna.c
+@@ -970,7 +970,7 @@
+     {
+ 	token = ajStrParseC(Name2, ";");
+ 	/*ajStrExchangeCC(&Name2, ";", " ");*/
+-	stringLength = ajGraphicsCalcTextlengthS(token);
++	stringLength = mmtolen * ajGraphicsCalcTextlengthS(token);
+ 	xy1 = ajGraphicsCalcCoord(xDraw, yDraw, r2Ticks+postext, Angle);
+ 	xy2 = ajGraphicsCalcCoord(xDraw, yDraw, r2Ticks+postext+stringLength,
+ 			     Angle);
+@@ -1029,6 +1029,10 @@
+     float stringHeight;
+     float r1Blocks;
+     float r2Blocks;
++    float mmtolen;
++
++    /* radius is 2pi*radius in mm, RealLength in bases */
++    mmtolen = RealLength/(Radius * (float) 2.0 * (float) 3.1416);
+ 
+     r1Blocks = Radius+((float)1.0*BlockHeight/(float)2);
+     r2Blocks = r1Blocks-BlockHeight;
+@@ -1053,15 +1057,17 @@
+ 	ajGraphicsSetFgcolour(Colour);
+     }
+ 
+-    stringLength = cirdna_HorTextPileLengthMax(Name2, NumNames);
++    stringLength = mmtolen * cirdna_HorTextPileLengthMax(Name2, NumNames);
+     stringHeight = ajGraphicsCalcTextheight();
+-    StartAngle   = cirdna_ComputeAngle(RealLength, (To+From)/2+stringLength/2,
++    StartAngle   = cirdna_ComputeAngle(RealLength,
++                                       (To+From)/2 + stringLength/2,
+ 				       OriginAngle);
+-    EndAngle = cirdna_ComputeAngle(RealLength, (To+From)/2-stringLength/2,
++    EndAngle = cirdna_ComputeAngle(RealLength,
++                                   (To+From)/2 - stringLength/2,
+ 				   OriginAngle);
+ 
+     if(ajStrMatchCaseC(PosBlocks, "Out") )
+-	cirdna_HorTextPile(xDraw, yDraw, r1Blocks+(Adjust*postext), StartAngle,
++	cirdna_HorTextPile(xDraw, yDraw, r1Blocks+Adjust*postext, StartAngle,
+ 			   EndAngle, Name2, postext, 1);
+     else
+ 	cirdna_HorTextPile(xDraw, yDraw,
+--- emboss-6.4.0.orig/emboss/data/Efeatures.gff3protein
++++ emboss-6.4.0/emboss/data/Efeatures.gff3protein
+@@ -193,7 +193,7 @@
+ 
+ # METAL - Binding site for a metal ion.
+ 
+-metal_binding SO:0001092 SO:0001092_metal
++polypeptide_metal_contact SO:0001092 SO:0001092_metal
+ 	/note
+ 	/comment
+ 
+@@ -215,11 +215,7 @@
+ #                            internal cyclic lactam
+ #SULFATATION                 Generally of tyrosine
+ 
+-protein_modification_categorized_by_chemical_process MOD:01156
+-	/note
+-	/comment
+-
+-post_translational_modification SO:0001089
++post_translationally_modified_region MOD:01156 SO:0001089
+ 	/note
+ 	/comment
+ 
+@@ -351,7 +347,7 @@
+ 
+ # TURN -  DSSP secondary structure
+ 
+-turn SO:0001128
++polypeptide_turn_motif SO:0001128
+ 	/note
+ 	/comment
+ 
+@@ -371,7 +367,7 @@
+ #	/comment
+ 	/ftid
+ 
+-natural_variant SO:0001147 SO:0001147_variant
++natural_variant_site SO:0001147 SO:0001147_variant
+ 	/note
+ 	/comment
+ 	/ftid
+--- emboss-6.4.0.orig/emboss/data/Etcode.dat
++++ emboss-6.4.0/emboss/data/Etcode.dat
+@@ -22,6 +22,7 @@
+ 0.25
+ 0.23
+ 0.21
++0.19
+ 0.17
+ 0.00
+ #
+--- emboss-6.4.0.orig/emboss/dbiflat.c
++++ emboss-6.4.0/emboss/dbiflat.c
+@@ -91,6 +91,10 @@
+ 
+ static AjPList* fdl  = NULL;
+ 
++static AjBool dbiflat_ParseSwiss(AjPFile libr, AjPFile* alistfile,
++                                 AjBool systemsort, AjPStr* fields,
++                                 ajint* maxFieldLen, ajuint* countfield,
++                                 ajint *dpos, AjPStr* myid, AjPList* acl);
+ static AjBool dbiflat_ParseEmbl(AjPFile libr, AjPFile* alistfile,
+ 				AjBool systemsort, AjPStr* fields,
+ 				ajint* maxFieldLen, ajuint* countfield,
+@@ -135,7 +139,7 @@
+ static DbiflatOParser parser[] =
+ {
+     {"EMBL", dbiflat_ParseEmbl},
+-    {"SWISS", dbiflat_ParseEmbl},
++    {"SWISS", dbiflat_ParseSwiss},
+     {"GB", dbiflat_ParseGenbank},
+     {"REFSEQ", dbiflat_ParseRefseq},
+     {NULL, NULL}
+@@ -594,6 +598,385 @@
+ }
+ 
+ 
++
++
++/* @funcstatic dbiflat_ParseSwiss *********************************************
++**
++** Parse the ID, accession from a SwissProt or UniProtKB entry.
++**
++** Reads to the end of the entry and then returns.
++**
++** @param [u] libr [AjPFile] Input database file
++** @param [u] alistfile [AjPFile*] field data files array
++** @param [r] systemsort [AjBool] If ajTrue use system sort, else internal sort
++** @param [w] fields [AjPStr*] Fields required
++** @param [w] maxFieldLen [ajint*] Maximum token length for each field
++** @param [w] countfield [ajuint*] Number of tokens for each field
++** @param [w] dpos [ajint*] Byte offset
++** @param [w] myid [AjPStr*] ID
++** @param [w] myfdl [AjPList*] Lists of field values
++** @return [AjBool] ajTrue on success.
++** @@
++******************************************************************************/
++
++static AjBool dbiflat_ParseSwiss(AjPFile libr, AjPFile* alistfile,
++                                 AjBool systemsort, AjPStr* fields,
++                                 ajint* maxFieldLen, ajuint* countfield,
++                                 ajint* dpos, AjPStr* myid,
++                                 AjPList* myfdl)
++{
++    AjPStr tmpacnum = NULL;
++    char* fd;
++    ajint lineType;
++    static ajint numFields;
++    static ajint accfield = -1;
++    static ajint desfield = -1;
++    static ajint keyfield = -1;
++    static ajint taxfield = -1;
++    static ajint svnfield = -1;
++    static AjBool reset = AJTRUE;
++    AjBool svndone = ajFalse;
++    AjBool done = ajFalse;
++    ajint i;
++    ajint lo;
++    ajint hi;
++    ajint fieldwidth;
++    AjPStr tmpac = NULL;
++    AjPStr format = NULL;
++    AjPStr prefix = NULL;
++    const char* p;
++    const char* q;
++    const char* swissprefix[] = {
++        "RecName: ", "AltName: ", "SubName: ",
++        "Includes:", "Contains:", "Flags: ",
++        "Full=", "Short=", "EC=",
++        "Allergen=", "Biotech=", "CD_antigen=", "INN=",
++        NULL
++    };
++    ajuint j;
++
++    if(!fields)
++    {
++	reset = ajTrue;
++	accfield = svnfield = desfield = keyfield = taxfield = -1;
++	return ajFalse;
++    }
++
++    if(reset)
++    {
++	numFields = 0;
++	while(fields[numFields])
++	{
++	    countfield[numFields]=0;
++	    if(ajStrMatchCaseC(fields[numFields], "acc"))
++		accfield=numFields;
++	    else if(ajStrMatchCaseC(fields[numFields], "sv"))
++		svnfield=numFields;
++	    else if(ajStrMatchCaseC(fields[numFields], "des"))
++		desfield=numFields;
++	    else if(ajStrMatchCaseC(fields[numFields], "key"))
++		keyfield=numFields;
++	    else if(ajStrMatchCaseC(fields[numFields], "org"))
++		taxfield=numFields;
++	    else
++		ajWarn("EMBL parsing unknown field '%S' ignored",
++		       fields[numFields]);
++	    numFields++;
++	}
++
++	reset = ajFalse;
++    }
++
++    if(!regEmblType)
++	regEmblType = ajRegCompC("^([A-Z][A-Z]) +");
++
++    if(!regEmblAcc)
++	regEmblAcc = ajRegCompC("([A-Za-z0-9-]+)");
++
++    if(!regEmblWrd)
++	regEmblWrd = ajRegCompC("([A-Za-z0-9_]+)");
++
++    if(!regEmblVer)
++	regEmblVer = ajRegCompC("([A-Za-z0-9_.]+)");
++
++    if(!regEmblPhr)
++	regEmblPhr = ajRegCompC(" *([^;.\n\r]+)");
++
++    if(!regEmblTax)
++	regEmblTax = ajRegCompC(" *([^;.\n\r()]+)");
++
++    if(!regEmblId)
++	regEmblId = ajRegCompC("^ID   ([^\\s;]+)(;\\s+SV\\s+(\\d+))?");
++
++    if(!regEmblEnd)
++	regEmblEnd = ajRegCompC("^//");
++
++    *dpos = (ajint) ajFileResetPos(libr); /* Lossy cast */
++
++    while(ajReadline(libr, &rline))
++    {
++	if(ajRegExec(regEmblEnd, rline))
++	{
++	    done = ajTrue;
++	    break;
++	}
++
++	if(ajRegExec(regEmblType, rline))
++	{
++	    ajRegSubI(regEmblType, 1, &typStr);
++	    if(ajStrMatchC(typStr, "ID"))
++		lineType = FLATTYPE_ID;
++	    else if(ajStrMatchC(typStr, "SV") ||
++		    ajStrMatchC(typStr, "IV")) /* emblcds database */
++		lineType = FLATTYPE_VER;
++	    else if(ajStrMatchC(typStr, "AC") ||
++		    ajStrMatchC(typStr, "PA")) /* emblcds database */
++		lineType = FLATTYPE_ACC;
++	    else if(ajStrMatchC(typStr, "DE"))
++		lineType = FLATTYPE_DES;
++	    else if(ajStrMatchC(typStr, "KW"))
++		lineType = FLATTYPE_KEY;
++	    else if(ajStrMatchC(typStr, "OS"))
++		lineType = FLATTYPE_TAX;
++	    else if(ajStrMatchC(typStr, "OC"))
++		lineType = FLATTYPE_TAX;
++	    else
++		lineType=FLATTYPE_OTHER;
++
++	    if(lineType != FLATTYPE_OTHER)
++		ajRegPost(regEmblType, &tmpline);
++	}
++	else
++	    lineType = FLATTYPE_OTHER;
++
++	if(lineType == FLATTYPE_ID)
++	{
++	    ajRegExec(regEmblId, rline);
++	    ajRegSubI(regEmblId, 1, myid);
++	    ajStrFmtUpper(myid);
++	    ajDebug("++id '%S'\n", *myid);
++	    ajRegSubI(regEmblId, 3, &tmpfd);
++	    if(svnfield >= 0 && ajStrGetLen(tmpfd))
++	    {
++		ajStrFmtUpper(&tmpfd);
++		ajStrInsertK(&tmpfd, 0, '.');
++		ajStrInsertS(&tmpfd, 0, *myid);
++		/*ajDebug("++sv '%S'\n", tmpfd);*/
++		embDbiMaxlen(&tmpfd, &maxFieldLen[svnfield]);
++
++		countfield[svnfield]++;
++		if(systemsort)
++		    ajFmtPrintF(alistfile[svnfield], "%S %S\n", *myid, tmpfd);
++		else
++		{
++		    fd = ajCharNewS(tmpfd);
++		    ajListPushAppend(myfdl[svnfield], fd);
++		}
++		svndone = ajTrue;
++	    }
++	    continue;
++	}
++
++	if(lineType == FLATTYPE_ACC && accfield >= 0)
++	{
++	    while(ajRegExec(regEmblAcc, tmpline))
++	    {
++		ajRegSubI(regEmblAcc, 1, &tmpfd);
++		ajStrFmtUpper(&tmpfd);
++		/*ajDebug("++acc '%S'\n", tmpfd);*/
++
++		if(!tmpacnum)
++		    ajStrAssignS(&tmpacnum, tmpfd);
++
++		if((p=strchr(MAJSTRGETPTR(tmpfd),(int)'-')))
++		{
++		    q = p;
++		    while(isdigit((int)*(--q)));
++		    ++q;
++		    ajStrAssignSubC(&tmpstr,q,0,(ajint)(p-q-1));
++		    ajStrToInt(tmpstr,&lo);
++		    fieldwidth = (ajint) (p-q);
++		    ajFmtPrintS(&format,"%%S%%0%dd",fieldwidth);
++
++		    ++p;
++		    q = p;
++		    while(!isdigit((int)*q))
++			++q;
++		    sscanf(q,"%d",&hi);
++		    ajStrAssignSubC(&prefix,p,0,(ajint)(q-p-1));
++	    
++		    if(systemsort)
++		    {
++			for(i=lo;i<=hi;++i)
++			{
++			    ajFmtPrintS(&tmpac,MAJSTRGETPTR(format),prefix,i);
++			    embDbiMaxlen(&tmpac, &maxFieldLen[accfield]);
++			    countfield[accfield]++;
++			    ajFmtPrintF(alistfile[accfield],
++					"%S %S\n", *myid, tmpac);
++			}
++			ajStrDel(&tmpac);
++		    }
++		    else
++		    {
++			for(i=lo;i<=hi;++i)
++			{
++			    ajFmtPrintS(&tmpac,MAJSTRGETPTR(format),prefix,i);
++			    embDbiMaxlen(&tmpac, &maxFieldLen[accfield]);
++			    countfield[accfield]++;
++			    fd = ajCharNewS(tmpac);
++			    ajListPushAppend(myfdl[accfield], fd);
++			}
++			ajStrDel(&tmpac);
++		    }
++		    ajStrDel(&format);
++		    ajStrDel(&prefix);
++		}
++		else {
++		    embDbiMaxlen(&tmpfd, &maxFieldLen[accfield]);
++
++		    countfield[accfield]++;
++		    if(systemsort)
++			ajFmtPrintF(alistfile[accfield],
++				    "%S %S\n", *myid, tmpfd);
++		    else
++		    {
++			fd = ajCharNewS(tmpfd);
++			ajListPushAppend(myfdl[accfield], fd);
++		    }
++		}
++		ajRegPost(regEmblAcc, &tmpstr);
++                ajStrAssignS(&tmpline, tmpstr);
++	    }
++	    continue;
++	}
++	else if(lineType == FLATTYPE_DES && desfield >= 0)
++	{
++            ajStrTrimWhiteStart(&tmpline);
++            for(j=0; swissprefix[j]; j++)
++            {
++                if(ajStrPrefixC(tmpline, swissprefix[j]))
++                    ajStrCutStart(&tmpline, strlen(swissprefix[j]));
++            }
++	    while(ajRegExec(regEmblWrd, tmpline))
++	    {
++		ajRegSubI(regEmblWrd, 1, &tmpfd);
++		ajStrFmtUpper(&tmpfd);
++		/*ajDebug("++des '%S'\n", tmpfd);*/
++		embDbiMaxlen(&tmpfd, &maxFieldLen[desfield]);
++
++		countfield[desfield]++;
++		if(systemsort)
++		    ajFmtPrintF(alistfile[desfield], "%S %S\n", *myid, tmpfd);
++		else
++		{
++		    fd = ajCharNewS(tmpfd);
++		    ajListPushAppend(myfdl[desfield], fd);
++		}
++		ajRegPost(regEmblWrd, &tmpstr);
++                ajStrAssignS(&tmpline, tmpstr);
++	    }
++	    continue;
++	}
++	else if(lineType == FLATTYPE_VER && svnfield >= 0)
++	{
++	    while(ajRegExec(regEmblVer, tmpline))
++	    {
++		ajRegSubI(regEmblVer, 1, &tmpfd);
++		ajStrFmtUpper(&tmpfd);
++		/*ajDebug("++sv '%S'\n", tmpfd);*/
++		embDbiMaxlen(&tmpfd, &maxFieldLen[svnfield]);
++
++		countfield[svnfield]++;
++		if(systemsort)
++		    ajFmtPrintF(alistfile[svnfield], "%S %S\n", *myid, tmpfd);
++		else
++		{
++		    fd = ajCharNewS(tmpfd);
++		    ajListPushAppend(myfdl[svnfield], fd);
++		}
++		ajRegPost(regEmblVer, &tmpstr);	
++                ajStrAssignS(&tmpline, tmpstr);
++            }
++	    svndone = ajTrue;
++	    continue;
++	}
++	else if(lineType == FLATTYPE_KEY && keyfield >= 0)
++	{
++	    while(ajRegExec(regEmblPhr, tmpline))
++	    {
++		ajRegSubI(regEmblPhr, 1, &tmpfd);
++		ajRegPost(regEmblPhr, &tmpstr);
++                ajStrAssignS(&tmpline, tmpstr);
++		ajStrTrimWhiteEnd(&tmpfd);
++		if(!ajStrGetLen(tmpfd))
++		    continue;
++		ajStrFmtUpper(&tmpfd);
++		/*ajDebug("++key '%S'\n", tmpfd);*/
++		embDbiMaxlen(&tmpfd, &maxFieldLen[keyfield]);
++
++		countfield[keyfield]++;
++		if(systemsort)
++		    ajFmtPrintF(alistfile[keyfield], "%S %S\n", *myid, tmpfd);
++		else
++		{
++		    fd = ajCharNewS(tmpfd);
++		    ajListPushAppend(myfdl[keyfield], fd);
++		}
++	    }
++	    continue;
++	}
++	else if(lineType == FLATTYPE_TAX && taxfield >= 0)
++	{
++	    while(ajRegExec(regEmblTax, tmpline))
++	    {
++		ajRegSubI(regEmblTax, 1, &tmpfd);
++		ajRegPost(regEmblTax, &tmpstr);
++                ajStrAssignS(&tmpline, tmpstr);
++		ajStrFmtUpper(&tmpfd);
++		ajStrTrimWhiteEnd(&tmpfd);
++		if(!ajStrGetLen(tmpfd))
++		    continue;
++		/*ajDebug("++tax '%S'\n", tmpfd);*/
++		embDbiMaxlen(&tmpfd, &maxFieldLen[taxfield]);
++
++		countfield[taxfield]++;
++		if(systemsort)
++		    ajFmtPrintF(alistfile[taxfield], "%S %S\n", *myid, tmpfd);
++		else
++		{
++		    fd = ajCharNewS(tmpfd);
++		    ajListPushAppend(myfdl[taxfield], fd);
++		}
++	    }
++	    continue;
++	}
++    }
++
++    if(!done)
++	return ajFalse;
++
++    if(svnfield >= 0 && !svndone && tmpacnum)
++    {
++	ajFmtPrintS(&tmpfd, "%S.0", tmpacnum);
++	embDbiMaxlen(&tmpfd, &maxFieldLen[svnfield]);
++
++	countfield[svnfield]++;
++	if(systemsort)
++	    ajFmtPrintF(alistfile[svnfield], "%S %S\n", *myid, tmpfd);
++	else
++	{
++	    fd = ajCharNewS(tmpfd);
++	    ajListPushAppend(myfdl[svnfield], fd);
++	}
++    }
++
++    ajStrDel(&tmpacnum);
++
++    return ajTrue;
++}
++
++
+ 
+ 
+ /* @funcstatic dbiflat_ParseEmbl **********************************************
+--- emboss-6.4.0.orig/emboss/dbxflat.c
++++ emboss-6.4.0/emboss/dbxflat.c
+@@ -32,6 +32,7 @@
+ static AjBool dbxflat_ParseFastq(EmbPBtreeEntry entry, AjPFile inf);
+ static AjBool dbxflat_ParseEmbl(EmbPBtreeEntry entry, AjPFile inf);
+ static AjBool dbxflat_ParseGenbank(EmbPBtreeEntry entry, AjPFile inf);
++static AjBool dbxflat_ParseSwiss(EmbPBtreeEntry entry, AjPFile inf);
+ 
+ static AjBool dbxflat_NextEntry(EmbPBtreeEntry entry, AjPFile inf);
+ 
+@@ -76,7 +77,7 @@
+ static DbxflatOParser parser[] =
+ {
+     {"EMBL",   dbxflat_ParseEmbl},
+-    {"SWISS",  dbxflat_ParseEmbl},
++    {"SWISS",  dbxflat_ParseSwiss},
+     {"GB",     dbxflat_ParseGenbank},
+     {"REFSEQ", dbxflat_ParseGenbank},
+     {"FASTQ",  dbxflat_ParseFastq},
+@@ -715,6 +716,101 @@
+ 
+ 
+ 
++
++/* @funcstatic dbxflat_ParseSwiss *********************************************
++**
++** Parse the ID, accession from a SwissProt or UniProtKB entry.
++**
++** Reads to the end of the entry and then returns.
++**
++** @param [w] entry [EmbPBtreeEntry] entry
++** @param [u] inf [AjPFile] Input file
++**
++** @return [AjBool] ajTrue on success.
++** @@
++******************************************************************************/
++
++static AjBool dbxflat_ParseSwiss(EmbPBtreeEntry entry, AjPFile inf)
++{
++    AjPStr line = NULL;
++    ajlong pos  = 0L;
++    const char* swissprefix[] = {
++        "RecName: ", "AltName: ", "SubName: ",
++        "Includes:", "Contains:", "Flags: ",
++        "Full=", "Short=", "EC=",
++        "Allergen=", "Biotech=", "CD_antigen=", "INN=",
++        NULL
++    };
++    ajuint i;
++
++    if(!dbxflat_wrdexp)
++	dbxflat_wrdexp = ajRegCompC("([A-Za-z0-9_-]+)");
++
++    line = ajStrNewC("");
++    
++    while(!ajStrPrefixC(line,"//"))
++    {
++	pos = ajFileResetPos(inf);
++	
++	if(!ajReadlineTrim(inf,&line))
++	{
++	    ajStrDel(&line);
++	    return ajFalse;
++	}
++	if(ajStrPrefixC(line,"ID"))
++	{
++	    entry->fpos = pos;
++	    ajFmtScanS(line,"%*S%S",&entry->id);
++	    ajStrTrimEndC(&entry->id, ";");
++/*
++	    ++global;
++	    printf("%d. %s\n",global,ajStrGetPtr(entry->id));
++*/
++	    if(svfield)
++		embBtreeEmblSV(line,svfield->data);
++	}
++
++
++	if(svfield)
++	    if(ajStrPrefixC(line,"SV") ||
++	       ajStrPrefixC(line,"IV"))	/* emblcds database format */
++		embBtreeEmblAC(line,svfield->data);
++
++	if(accfield)
++	    if(ajStrPrefixC(line,"AC") ||
++	       ajStrPrefixC(line,"PA"))	/* emblcds database format */
++		embBtreeEmblAC(line,accfield->data);
++	
++	if(keyfield)
++	    if(ajStrPrefixC(line,"KW"))
++		embBtreeEmblKW(line,keyfield->data,keyfield->len);
++
++	if(desfield)
++	    if(ajStrPrefixC(line,"DE"))
++            {
++                ajStrCutStart(&line, 5);
++                ajStrTrimWhiteStart(&line);
++                for(i=0; swissprefix[i]; i++)
++                {
++                    if(ajStrPrefixC(line, swissprefix[i]))
++                        ajStrCutStart(&line, strlen(swissprefix[i]));
++                }
++		embBtreeParseField(line,dbxflat_wrdexp, desfield);
++            }
++        
++	if(orgfield)
++	    if(ajStrPrefixC(line,"OC") || ajStrPrefixC(line,"OS"))
++		embBtreeEmblTX(line,orgfield->data,orgfield->len);
++    }
++    
++
++    ajStrDel(&line);
++    
++    return ajTrue;
++}
++
++
++
+ 
+ /* @funcstatic dbxflat_NextEntry ********************************************
+ **
+--- emboss-6.4.0.orig/emboss/dbxresource.c
++++ emboss-6.4.0/emboss/dbxresource.c
+@@ -535,6 +535,19 @@
+         if(urlfield && !ajStrMatchC(rest, "None"))
+             embBtreeParseField(rest, dbxresource_wrdexp, urlfield);
+     }
++    else if(ajStrMatchC(name, "NARCat"))
++    {
++        if(catfield && !ajStrMatchC(rest, "None"))
++        {
++            handle = ajStrTokenNewC(rest, "|");
++            while(ajStrTokenNextParse(&handle, &token))
++            {
++                ajStrRemoveWhiteExcess(&token);
++                ajListstrPush(catfield->data,ajStrNewS(token));
++            }
++            ajStrTokenDel(&handle);
++        }
++    }
+     else if(ajStrSuffixC(name, "Cat"))
+     {
+         if(catfield && !ajStrMatchC(rest, "None"))
+--- emboss-6.4.0.orig/emboss/drfinddata.c
++++ emboss-6.4.0/emboss/drfinddata.c
+@@ -155,8 +155,9 @@
+                         {
+                             if(!ajTableMatchS(foundtable, resource->Id))
+                             {
+-                                ajDebug("drcat id '%S' category '%S'\n",
+-                                       resource->Id, resource->Cat);
++                                ajDebug("drcat id '%S' categories %u\n",
++                                        resource->Id,
++                                        ajListGetLength(resource->Cat));
+                                 ajResourceoutWrite(outfile, resource);
+                                 ajTablePut(foundtable, ajStrNewS(resource->Id),
+                                            (void *) 1);
+--- emboss-6.4.0.orig/emboss/drfindformat.c
++++ emboss-6.4.0/emboss/drfindformat.c
+@@ -152,8 +152,9 @@
+                         {
+                             if(!ajTableMatchS(foundtable, resource->Id))
+                             {
+-                                ajDebug("drcat id '%S' category '%S'\n",
+-                                       resource->Id, resource->Cat);
++                                ajDebug("drcat id '%S' categories %u\n",
++                                        resource->Id,
++                                        ajListGetLength(resource->Cat));
+                                 ajResourceoutWrite(outfile, resource);
+                                 ajTablePut(foundtable, ajStrNewS(resource->Id),
+                                            (void *) 1);
+--- emboss-6.4.0.orig/emboss/drfindid.c
++++ emboss-6.4.0/emboss/drfindid.c
+@@ -152,8 +152,9 @@
+                         {
+                             if(!ajTableMatchS(foundtable, resource->Id))
+                             {
+-                                ajDebug("drcat id '%S' category '%S'\n",
+-                                       resource->Id, resource->Cat);
++                                ajDebug("drcat id '%S' categories %u\n",
++                                        resource->Id,
++                                        ajListGetLength(resource->Cat));
+                                 ajResourceoutWrite(outfile, resource);
+                                 ajTablePut(foundtable, ajStrNewS(resource->Id),
+                                            (void *) 1);
+--- emboss-6.4.0.orig/emboss/drfindresource.c
++++ emboss-6.4.0/emboss/drfindresource.c
+@@ -162,9 +162,10 @@
+                         {
+                             if(!ajTableMatchS(foundtable, resource->Id))
+                             {
+-                                ajDebug("drcat id '%S' category '%S'\n",
+-                                       resource->Id, resource->Cat);
+-                                ajResourceoutWrite(outfile, resource);
++                                ajDebug("drcat id '%S' categories %u\n",
++                                        resource->Id,
++                                        ajListGetLength(resource->Cat));
++                                 ajResourceoutWrite(outfile, resource);
+                                 ajTablePut(foundtable, ajStrNewS(resource->Id),
+                                            (void *) 1);
+                             }
+--- emboss-6.4.0.orig/emboss/server.ensemblgenomes
++++ emboss-6.4.0/emboss/server.ensemblgenomes
+@@ -1,4 +1,4 @@
+-# server.ensemblgenomes 2011-07-05 00:00:00
++# server.ensemblgenomes 2011-07-27 00:00:00
+ # Automatically generated by cacheensembl for server 'ensemblgenomes'.
+ 
+ DBNAME acyrthosiphon_pisum [
+@@ -194,6 +194,7 @@
+ ALIAS 15368 brachypodium_distachyon
+ 
+ DBNAME b_afzelii [
++  comment: "SpeciesIdentifier=4"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/borrelia_collection_core_9_62_1a"
+@@ -202,6 +203,7 @@
+ ALIAS 390236 b_afzelii
+ 
+ DBNAME b_amyloliquefaciens [
++  comment: "SpeciesIdentifier=2"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -210,6 +212,7 @@
+ ALIAS 326423 b_amyloliquefaciens
+ 
+ DBNAME b_anthracis_a0248 [
++  comment: "SpeciesIdentifier=25"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -218,6 +221,7 @@
+ ALIAS 592021 b_anthracis_a0248
+ 
+ DBNAME b_anthracis_ames [
++  comment: "SpeciesIdentifier=3"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -226,6 +230,7 @@
+ ALIAS 198094 b_anthracis_ames
+ 
+ DBNAME b_anthracis_ames_ancestor [
++  comment: "SpeciesIdentifier=4"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -234,6 +239,7 @@
+ ALIAS 261594 b_anthracis_ames_ancestor
+ 
+ DBNAME b_anthracis_cdc_684 [
++  comment: "SpeciesIdentifier=24"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -242,6 +248,7 @@
+ ALIAS 568206 b_anthracis_cdc_684
+ 
+ DBNAME b_anthracis_sterne [
++  comment: "SpeciesIdentifier=5"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -250,6 +257,7 @@
+ ALIAS 260799 b_anthracis_sterne
+ 
+ DBNAME b_aphidicola_5a [
++  comment: "SpeciesIdentifier=2"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/buchnera_collection_core_9_62_1a"
+@@ -258,6 +266,7 @@
+ ALIAS 563178 b_aphidicola_5a
+ 
+ DBNAME b_aphidicola_baizongia [
++  comment: "SpeciesIdentifier=5"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/buchnera_collection_core_9_62_1a"
+@@ -266,6 +275,7 @@
+ ALIAS 224915 b_aphidicola_baizongia
+ 
+ DBNAME b_aphidicola_cinara [
++  comment: "SpeciesIdentifier=3"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/buchnera_collection_core_9_62_1a"
+@@ -274,6 +284,7 @@
+ ALIAS 372461 b_aphidicola_cinara
+ 
+ DBNAME b_aphidicola_schizaphis [
++  comment: "SpeciesIdentifier=1"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/buchnera_collection_core_9_62_1a"
+@@ -282,6 +293,7 @@
+ ALIAS 198804 b_aphidicola_schizaphis
+ 
+ DBNAME b_aphidicola_tokyo_1998 [
++  comment: "SpeciesIdentifier=6"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/buchnera_collection_core_9_62_1a"
+@@ -290,6 +302,7 @@
+ ALIAS 107806 b_aphidicola_tokyo_1998
+ 
+ DBNAME b_aphidicola_tuc7 [
++  comment: "SpeciesIdentifier=4"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/buchnera_collection_core_9_62_1a"
+@@ -298,6 +311,7 @@
+ ALIAS 561501 b_aphidicola_tuc7
+ 
+ DBNAME b_burgdorferi_dsm_4680 [
++  comment: "SpeciesIdentifier=8"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/borrelia_collection_core_9_62_1a"
+@@ -306,6 +320,7 @@
+ ALIAS 224326 b_burgdorferi_dsm_4680
+ 
+ DBNAME b_burgdorferi_zs7 [
++  comment: "SpeciesIdentifier=3"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/borrelia_collection_core_9_62_1a"
+@@ -314,6 +329,7 @@
+ ALIAS 445985 b_burgdorferi_zs7
+ 
+ DBNAME b_cereus_03bb102 [
++  comment: "SpeciesIdentifier=20"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -322,6 +338,7 @@
+ ALIAS 572264 b_cereus_03bb102
+ 
+ DBNAME b_cereus_172560w [
++  comment: "SpeciesIdentifier=50"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -330,6 +347,7 @@
+ ALIAS 526967 b_cereus_172560w
+ 
+ DBNAME b_cereus_95_8201 [
++  comment: "SpeciesIdentifier=36"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -338,6 +356,7 @@
+ ALIAS 526979 b_cereus_95_8201
+ 
+ DBNAME b_cereus_ah1271 [
++  comment: "SpeciesIdentifier=71"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -346,6 +365,7 @@
+ ALIAS 526992 b_cereus_ah1271
+ 
+ DBNAME b_cereus_ah1272 [
++  comment: "SpeciesIdentifier=53"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -354,6 +374,7 @@
+ ALIAS 526993 b_cereus_ah1272
+ 
+ DBNAME b_cereus_ah1273 [
++  comment: "SpeciesIdentifier=43"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -362,6 +383,7 @@
+ ALIAS 526994 b_cereus_ah1273
+ 
+ DBNAME b_cereus_ah187 [
++  comment: "SpeciesIdentifier=19"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -370,6 +392,7 @@
+ ALIAS 405534 b_cereus_ah187
+ 
+ DBNAME b_cereus_ah603 [
++  comment: "SpeciesIdentifier=49"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -378,6 +401,7 @@
+ ALIAS 526990 b_cereus_ah603
+ 
+ DBNAME b_cereus_ah621 [
++  comment: "SpeciesIdentifier=46"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -386,6 +410,7 @@
+ ALIAS 526972 b_cereus_ah621
+ 
+ DBNAME b_cereus_ah676 [
++  comment: "SpeciesIdentifier=38"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -394,6 +419,7 @@
+ ALIAS 526991 b_cereus_ah676
+ 
+ DBNAME b_cereus_ah820 [
++  comment: "SpeciesIdentifier=18"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -402,6 +428,7 @@
+ ALIAS 405535 b_cereus_ah820
+ 
+ DBNAME b_cereus_atcc_10876 [
++  comment: "SpeciesIdentifier=70"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -410,6 +437,7 @@
+ ALIAS 526980 b_cereus_atcc_10876
+ 
+ DBNAME b_cereus_atcc_10987 [
++  comment: "SpeciesIdentifier=6"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -418,6 +446,7 @@
+ ALIAS 222523 b_cereus_atcc_10987
+ 
+ DBNAME b_cereus_atcc_14579 [
++  comment: "SpeciesIdentifier=7"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -426,6 +455,7 @@
+ ALIAS 226900 b_cereus_atcc_14579
+ 
+ DBNAME b_cereus_atcc_4342 [
++  comment: "SpeciesIdentifier=72"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -434,6 +464,7 @@
+ ALIAS 526977 b_cereus_atcc_4342
+ 
+ DBNAME b_cereus_b4264 [
++  comment: "SpeciesIdentifier=23"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -442,6 +473,7 @@
+ ALIAS 405532 b_cereus_b4264
+ 
+ DBNAME b_cereus_bdrd_bcer4 [
++  comment: "SpeciesIdentifier=62"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -450,6 +482,7 @@
+ ALIAS 526978 b_cereus_bdrd_bcer4
+ 
+ DBNAME b_cereus_bdrd_st196 [
++  comment: "SpeciesIdentifier=34"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -458,6 +491,7 @@
+ ALIAS 526976 b_cereus_bdrd_st196
+ 
+ DBNAME b_cereus_bdrd_st24 [
++  comment: "SpeciesIdentifier=37"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -466,6 +500,7 @@
+ ALIAS 526974 b_cereus_bdrd_st24
+ 
+ DBNAME b_cereus_bdrd_st26 [
++  comment: "SpeciesIdentifier=39"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -474,6 +509,7 @@
+ ALIAS 526975 b_cereus_bdrd_st26
+ 
+ DBNAME b_cereus_bgsc_6e1 [
++  comment: "SpeciesIdentifier=67"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -482,6 +518,7 @@
+ ALIAS 526970 b_cereus_bgsc_6e1
+ 
+ DBNAME b_cereus_cytotoxis [
++  comment: "SpeciesIdentifier=8"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -490,6 +527,7 @@
+ ALIAS 315749 b_cereus_cytotoxis
+ 
+ DBNAME b_cereus_f65185 [
++  comment: "SpeciesIdentifier=30"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -498,6 +536,7 @@
+ ALIAS 526989 b_cereus_f65185
+ 
+ DBNAME b_cereus_g9842 [
++  comment: "SpeciesIdentifier=22"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -506,6 +545,7 @@
+ ALIAS 405531 b_cereus_g9842
+ 
+ DBNAME b_cereus_m1293 [
++  comment: "SpeciesIdentifier=40"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -514,6 +554,7 @@
+ ALIAS 526973 b_cereus_m1293
+ 
+ DBNAME b_cereus_mm1550 [
++  comment: "SpeciesIdentifier=65"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -522,6 +563,7 @@
+ ALIAS 526969 b_cereus_mm1550
+ 
+ DBNAME b_cereus_mm3 [
++  comment: "SpeciesIdentifier=52"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -530,6 +572,7 @@
+ ALIAS 526971 b_cereus_mm3
+ 
+ DBNAME b_cereus_q1 [
++  comment: "SpeciesIdentifier=21"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -538,6 +581,7 @@
+ ALIAS 361100 b_cereus_q1
+ 
+ DBNAME b_cereus_r309803 [
++  comment: "SpeciesIdentifier=33"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -546,6 +590,7 @@
+ ALIAS 526968 b_cereus_r309803
+ 
+ DBNAME b_cereus_rock1_15 [
++  comment: "SpeciesIdentifier=42"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -554,6 +599,7 @@
+ ALIAS 526982 b_cereus_rock1_15
+ 
+ DBNAME b_cereus_rock1_3 [
++  comment: "SpeciesIdentifier=78"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -562,6 +608,7 @@
+ ALIAS 526981 b_cereus_rock1_3
+ 
+ DBNAME b_cereus_rock3_28 [
++  comment: "SpeciesIdentifier=57"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -570,6 +617,7 @@
+ ALIAS 526983 b_cereus_rock3_28
+ 
+ DBNAME b_cereus_rock3_29 [
++  comment: "SpeciesIdentifier=51"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -578,6 +626,7 @@
+ ALIAS 526984 b_cereus_rock3_29
+ 
+ DBNAME b_cereus_rock3_42 [
++  comment: "SpeciesIdentifier=77"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -586,6 +635,7 @@
+ ALIAS 526985 b_cereus_rock3_42
+ 
+ DBNAME b_cereus_rock3_44 [
++  comment: "SpeciesIdentifier=48"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -594,6 +644,7 @@
+ ALIAS 526986 b_cereus_rock3_44
+ 
+ DBNAME b_cereus_rock4_18 [
++  comment: "SpeciesIdentifier=55"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -602,6 +653,7 @@
+ ALIAS 526988 b_cereus_rock4_18
+ 
+ DBNAME b_cereus_rock4_2 [
++  comment: "SpeciesIdentifier=76"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -610,6 +662,7 @@
+ ALIAS 526987 b_cereus_rock4_2
+ 
+ DBNAME b_cereus_var_anthracis [
++  comment: "SpeciesIdentifier=69"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -618,6 +671,7 @@
+ ALIAS 637380 b_cereus_var_anthracis
+ 
+ DBNAME b_cereus_zk [
++  comment: "SpeciesIdentifier=9"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -626,6 +680,7 @@
+ ALIAS 288681 b_cereus_zk
+ 
+ DBNAME b_clausii [
++  comment: "SpeciesIdentifier=10"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -634,6 +689,7 @@
+ ALIAS 66692 b_clausii
+ 
+ DBNAME b_duttonii [
++  comment: "SpeciesIdentifier=2"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/borrelia_collection_core_9_62_1a"
+@@ -642,6 +698,7 @@
+ ALIAS 412419 b_duttonii
+ 
+ DBNAME b_garinii [
++  comment: "SpeciesIdentifier=7"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/borrelia_collection_core_9_62_1a"
+@@ -650,6 +707,7 @@
+ ALIAS 290434 b_garinii
+ 
+ DBNAME b_halodurans [
++  comment: "SpeciesIdentifier=11"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -658,6 +716,7 @@
+ ALIAS 272558 b_halodurans
+ 
+ DBNAME b_hermsii [
++  comment: "SpeciesIdentifier=6"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/borrelia_collection_core_9_62_1a"
+@@ -666,6 +725,7 @@
+ ALIAS 314723 b_hermsii
+ 
+ DBNAME b_licheniformis_goettingen [
++  comment: "SpeciesIdentifier=12"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -674,6 +734,7 @@
+ ALIAS 279010 b_licheniformis_goettingen
+ 
+ DBNAME b_licheniformis_novozymes [
++  comment: "SpeciesIdentifier=13"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -681,6 +742,7 @@
+ 
+ 
+ DBNAME b_megaterium_atcc_12872 [
++  comment: "SpeciesIdentifier=73"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -689,6 +751,7 @@
+ ALIAS 545693 b_megaterium_atcc_12872
+ 
+ DBNAME b_megaterium_dsm_319 [
++  comment: "SpeciesIdentifier=80"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -697,6 +760,7 @@
+ ALIAS 592022 b_megaterium_dsm_319
+ 
+ DBNAME b_mycoides_dsm_2048 [
++  comment: "SpeciesIdentifier=47"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -705,6 +769,7 @@
+ ALIAS 526997 b_mycoides_dsm_2048
+ 
+ DBNAME b_mycoides_rock1_4 [
++  comment: "SpeciesIdentifier=28"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -713,6 +778,7 @@
+ ALIAS 526998 b_mycoides_rock1_4
+ 
+ DBNAME b_mycoides_rock3_17 [
++  comment: "SpeciesIdentifier=59"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -721,6 +787,7 @@
+ ALIAS 526999 b_mycoides_rock3_17
+ 
+ DBNAME b_pseudofirmus [
++  comment: "SpeciesIdentifier=54"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -729,6 +796,7 @@
+ ALIAS 398511 b_pseudofirmus
+ 
+ DBNAME b_pseudomycoides [
++  comment: "SpeciesIdentifier=58"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -737,6 +805,7 @@
+ ALIAS 527000 b_pseudomycoides
+ 
+ DBNAME b_pumilus [
++  comment: "SpeciesIdentifier=14"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -745,6 +814,7 @@
+ ALIAS 315750 b_pumilus
+ 
+ DBNAME b_recurrentis [
++  comment: "SpeciesIdentifier=5"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/borrelia_collection_core_9_62_1a"
+@@ -753,6 +823,7 @@
+ ALIAS 412418 b_recurrentis
+ 
+ DBNAME b_selenitireducens [
++  comment: "SpeciesIdentifier=32"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -761,6 +832,7 @@
+ ALIAS 439292 b_selenitireducens
+ 
+ DBNAME b_subtilis [
++  comment: "SpeciesIdentifier=1"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -769,6 +841,7 @@
+ ALIAS 224308 b_subtilis
+ 
+ DBNAME b_thuringiensis [
++  comment: "SpeciesIdentifier=15"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -777,6 +850,7 @@
+ ALIAS 412694 b_thuringiensis
+ 
+ DBNAME b_thuringiensis_atcc_10792 [
++  comment: "SpeciesIdentifier=41"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -785,6 +859,7 @@
+ ALIAS 527031 b_thuringiensis_atcc_10792
+ 
+ DBNAME b_thuringiensis_bgsc_4aj1 [
++  comment: "SpeciesIdentifier=75"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -793,6 +868,7 @@
+ ALIAS 527022 b_thuringiensis_bgsc_4aj1
+ 
+ DBNAME b_thuringiensis_bgsc_4aw1_andalous [
++  comment: "SpeciesIdentifier=56"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -801,6 +877,7 @@
+ ALIAS 527032 b_thuringiensis_bgsc_4aw1_andalous
+ 
+ DBNAME b_thuringiensis_bgsc_4ba1_pondicheri [
++  comment: "SpeciesIdentifier=29"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -809,6 +886,7 @@
+ ALIAS 527029 b_thuringiensis_bgsc_4ba1_pondicheri
+ 
+ DBNAME b_thuringiensis_bgsc_4bd1_huazhong [
++  comment: "SpeciesIdentifier=31"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -817,6 +895,7 @@
+ ALIAS 527030 b_thuringiensis_bgsc_4bd1_huazhong
+ 
+ DBNAME b_thuringiensis_bgsc_4cc1_pulsiensis [
++  comment: "SpeciesIdentifier=35"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -825,6 +904,7 @@
+ ALIAS 527028 b_thuringiensis_bgsc_4cc1_pulsiensis
+ 
+ DBNAME b_thuringiensis_bgsc_4y1_tochigiensis [
++  comment: "SpeciesIdentifier=44"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -833,6 +913,7 @@
+ ALIAS 527024 b_thuringiensis_bgsc_4y1_tochigiensis
+ 
+ DBNAME b_thuringiensis_bmb171 [
++  comment: "SpeciesIdentifier=68"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -841,6 +922,7 @@
+ ALIAS 714359 b_thuringiensis_bmb171
+ 
+ DBNAME b_thuringiensis_bt407 [
++  comment: "SpeciesIdentifier=26"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -849,6 +931,7 @@
+ ALIAS 527021 b_thuringiensis_bt407
+ 
+ DBNAME b_thuringiensis_ibl200 [
++  comment: "SpeciesIdentifier=27"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -857,6 +940,7 @@
+ ALIAS 527019 b_thuringiensis_ibl200
+ 
+ DBNAME b_thuringiensis_ibl4222 [
++  comment: "SpeciesIdentifier=64"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -865,6 +949,7 @@
+ ALIAS 527020 b_thuringiensis_ibl4222
+ 
+ DBNAME b_thuringiensis_konkukian [
++  comment: "SpeciesIdentifier=16"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -873,6 +958,7 @@
+ ALIAS 281309 b_thuringiensis_konkukian
+ 
+ DBNAME b_thuringiensis_t01001 [
++  comment: "SpeciesIdentifier=60"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -881,6 +967,7 @@
+ ALIAS 527025 b_thuringiensis_t01001
+ 
+ DBNAME b_thuringiensis_t03a001_kurstaki [
++  comment: "SpeciesIdentifier=63"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -889,6 +976,7 @@
+ ALIAS 527023 b_thuringiensis_t03a001_kurstaki
+ 
+ DBNAME b_thuringiensis_t04001_sotto [
++  comment: "SpeciesIdentifier=61"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -897,6 +985,7 @@
+ ALIAS 527026 b_thuringiensis_t04001_sotto
+ 
+ DBNAME b_thuringiensis_t13001_pakistani [
++  comment: "SpeciesIdentifier=45"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -905,6 +994,7 @@
+ ALIAS 527027 b_thuringiensis_t13001_pakistani
+ 
+ DBNAME b_turicatae [
++  comment: "SpeciesIdentifier=1"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/borrelia_collection_core_9_62_1a"
+@@ -913,6 +1003,7 @@
+ ALIAS 314724 b_turicatae
+ 
+ DBNAME b_tusciae [
++  comment: "SpeciesIdentifier=79"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -921,6 +1012,7 @@
+ ALIAS 562970 b_tusciae
+ 
+ DBNAME b_weihenstephanensis [
++  comment: "SpeciesIdentifier=17"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/bacillus_collection_core_9_62_4a"
+@@ -1221,6 +1313,7 @@
+ ]
+ 
+ DBNAME e_coli_042 [
++  comment: "SpeciesIdentifier=43"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1229,12 +1322,14 @@
+ ALIAS 216592 e_coli_042
+ 
+ DBNAME e_coli_042_funcgen [
++  comment: "SpeciesIdentifier=43"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME e_coli_55989 [
++  comment: "SpeciesIdentifier=26"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1243,12 +1338,14 @@
+ ALIAS 585055 e_coli_55989
+ 
+ DBNAME e_coli_55989_funcgen [
++  comment: "SpeciesIdentifier=26"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME e_coli_atcc_27325 [
++  comment: "SpeciesIdentifier=4"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1257,12 +1354,14 @@
+ ALIAS 316407 e_coli_atcc_27325
+ 
+ DBNAME e_coli_atcc_27325_funcgen [
++  comment: "SpeciesIdentifier=4"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME e_coli_atcc_33849 [
++  comment: "SpeciesIdentifier=39"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1271,12 +1370,14 @@
+ ALIAS 536056 e_coli_atcc_33849
+ 
+ DBNAME e_coli_atcc_33849_funcgen [
++  comment: "SpeciesIdentifier=39"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME e_coli_atcc_8739 [
++  comment: "SpeciesIdentifier=2"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1285,12 +1386,14 @@
+ ALIAS 481805 e_coli_atcc_8739
+ 
+ DBNAME e_coli_atcc_8739_funcgen [
++  comment: "SpeciesIdentifier=2"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME e_coli_bl21 [
++  comment: "SpeciesIdentifier=32"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1299,12 +1402,14 @@
+ ALIAS 511693 e_coli_bl21
+ 
+ DBNAME e_coli_bl21_funcgen [
++  comment: "SpeciesIdentifier=32"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME e_coli_bl21_de3_jgi [
++  comment: "SpeciesIdentifier=40"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1313,12 +1418,14 @@
+ ALIAS 866768 e_coli_bl21_de3_jgi
+ 
+ DBNAME e_coli_bl21_de3_jgi_funcgen [
++  comment: "SpeciesIdentifier=40"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME e_coli_bl21_de3_kribb [
++  comment: "SpeciesIdentifier=38"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1327,12 +1434,14 @@
+ ALIAS 469008 e_coli_bl21_de3_kribb
+ 
+ DBNAME e_coli_bl21_de3_kribb_funcgen [
++  comment: "SpeciesIdentifier=38"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME e_coli_bw2952 [
++  comment: "SpeciesIdentifier=31"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1341,12 +1450,14 @@
+ ALIAS 595496 e_coli_bw2952
+ 
+ DBNAME e_coli_bw2952_funcgen [
++  comment: "SpeciesIdentifier=31"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME e_coli_dh10b [
++  comment: "SpeciesIdentifier=3"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1355,12 +1466,14 @@
+ ALIAS 316385 e_coli_dh10b
+ 
+ DBNAME e_coli_dh10b_funcgen [
++  comment: "SpeciesIdentifier=3"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME e_coli_ec4115 [
++  comment: "SpeciesIdentifier=7"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1369,12 +1482,14 @@
+ ALIAS 444450 e_coli_ec4115
+ 
+ DBNAME e_coli_ec4115_funcgen [
++  comment: "SpeciesIdentifier=7"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME e_coli_edl933 [
++  comment: "SpeciesIdentifier=6"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1383,12 +1498,14 @@
+ ALIAS 155864 e_coli_edl933
+ 
+ DBNAME e_coli_edl933_funcgen [
++  comment: "SpeciesIdentifier=6"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME e_coli_k12 [
++  comment: "SpeciesIdentifier=1"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1397,12 +1514,14 @@
+ ALIAS 511145 e_coli_k12
+ 
+ DBNAME e_coli_k12_funcgen [
++  comment: "SpeciesIdentifier=1"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME e_coli_o103_h2 [
++  comment: "SpeciesIdentifier=36"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1411,12 +1530,14 @@
+ ALIAS 585395 e_coli_o103_h2
+ 
+ DBNAME e_coli_o103_h2_funcgen [
++  comment: "SpeciesIdentifier=36"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME e_coli_o111_h_ [
++  comment: "SpeciesIdentifier=37"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1425,12 +1546,14 @@
+ ALIAS 585396 e_coli_o111_h_
+ 
+ DBNAME e_coli_o111_h__funcgen [
++  comment: "SpeciesIdentifier=37"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME e_coli_o127_h6 [
++  comment: "SpeciesIdentifier=23"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1439,12 +1562,14 @@
+ ALIAS 574521 e_coli_o127_h6
+ 
+ DBNAME e_coli_o127_h6_funcgen [
++  comment: "SpeciesIdentifier=23"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME e_coli_o139_h28 [
++  comment: "SpeciesIdentifier=5"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1453,12 +1578,14 @@
+ ALIAS 331111 e_coli_o139_h28
+ 
+ DBNAME e_coli_o139_h28_funcgen [
++  comment: "SpeciesIdentifier=5"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME e_coli_o157_h7_tw14588 [
++  comment: "SpeciesIdentifier=45"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1467,12 +1594,14 @@
+ ALIAS 502346 e_coli_o157_h7_tw14588
+ 
+ DBNAME e_coli_o157_h7_tw14588_funcgen [
++  comment: "SpeciesIdentifier=45"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME e_coli_o17_k52_h18 [
++  comment: "SpeciesIdentifier=24"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1481,12 +1610,14 @@
+ ALIAS 585056 e_coli_o17_k52_h18
+ 
+ DBNAME e_coli_o17_k52_h18_funcgen [
++  comment: "SpeciesIdentifier=24"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME e_coli_o18_k1_h7 [
++  comment: "SpeciesIdentifier=46"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1495,12 +1626,14 @@
+ ALIAS 714962 e_coli_o18_k1_h7
+ 
+ DBNAME e_coli_o18_k1_h7_funcgen [
++  comment: "SpeciesIdentifier=46"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME e_coli_o1_k1_apec [
++  comment: "SpeciesIdentifier=8"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1509,12 +1642,14 @@
+ ALIAS 405955 e_coli_o1_k1_apec
+ 
+ DBNAME e_coli_o1_k1_apec_funcgen [
++  comment: "SpeciesIdentifier=8"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME e_coli_o26_h11 [
++  comment: "SpeciesIdentifier=35"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1523,12 +1658,14 @@
+ ALIAS 573235 e_coli_o26_h11
+ 
+ DBNAME e_coli_o26_h11_funcgen [
++  comment: "SpeciesIdentifier=35"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME e_coli_o45_k1 [
++  comment: "SpeciesIdentifier=28"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1537,12 +1674,14 @@
+ ALIAS 585035 e_coli_o45_k1
+ 
+ DBNAME e_coli_o45_k1_funcgen [
++  comment: "SpeciesIdentifier=28"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME e_coli_o55_h7 [
++  comment: "SpeciesIdentifier=44"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1551,12 +1690,14 @@
+ ALIAS 701177 e_coli_o55_h7
+ 
+ DBNAME e_coli_o55_h7_funcgen [
++  comment: "SpeciesIdentifier=44"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME e_coli_o6 [
++  comment: "SpeciesIdentifier=9"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1565,12 +1706,14 @@
+ ALIAS 217992 e_coli_o6
+ 
+ DBNAME e_coli_o6_funcgen [
++  comment: "SpeciesIdentifier=9"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME e_coli_o6_k15_h31 [
++  comment: "SpeciesIdentifier=10"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1579,12 +1722,14 @@
+ ALIAS 362663 e_coli_o6_k15_h31
+ 
+ DBNAME e_coli_o6_k15_h31_funcgen [
++  comment: "SpeciesIdentifier=10"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME e_coli_o7_k1 [
++  comment: "SpeciesIdentifier=30"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1593,12 +1738,14 @@
+ ALIAS 585057 e_coli_o7_k1
+ 
+ DBNAME e_coli_o7_k1_funcgen [
++  comment: "SpeciesIdentifier=30"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME e_coli_o8 [
++  comment: "SpeciesIdentifier=27"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1607,12 +1754,14 @@
+ ALIAS 585034 e_coli_o8
+ 
+ DBNAME e_coli_o8_funcgen [
++  comment: "SpeciesIdentifier=27"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME e_coli_o81 [
++  comment: "SpeciesIdentifier=29"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1621,12 +1770,14 @@
+ ALIAS 585397 e_coli_o81
+ 
+ DBNAME e_coli_o81_funcgen [
++  comment: "SpeciesIdentifier=29"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME e_coli_o9_h4 [
++  comment: "SpeciesIdentifier=11"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1635,12 +1786,14 @@
+ ALIAS 331112 e_coli_o9_h4
+ 
+ DBNAME e_coli_o9_h4_funcgen [
++  comment: "SpeciesIdentifier=11"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME e_coli_rel606 [
++  comment: "SpeciesIdentifier=33"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1649,12 +1802,14 @@
+ ALIAS 413997 e_coli_rel606
+ 
+ DBNAME e_coli_rel606_funcgen [
++  comment: "SpeciesIdentifier=33"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME e_coli_sakai [
++  comment: "SpeciesIdentifier=12"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1663,12 +1818,14 @@
+ ALIAS 386585 e_coli_sakai
+ 
+ DBNAME e_coli_sakai_funcgen [
++  comment: "SpeciesIdentifier=12"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME e_coli_se11 [
++  comment: "SpeciesIdentifier=22"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1677,12 +1834,14 @@
+ ALIAS 409438 e_coli_se11
+ 
+ DBNAME e_coli_se11_funcgen [
++  comment: "SpeciesIdentifier=22"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME e_coli_se15 [
++  comment: "SpeciesIdentifier=42"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1691,12 +1850,14 @@
+ ALIAS 431946 e_coli_se15
+ 
+ DBNAME e_coli_se15_funcgen [
++  comment: "SpeciesIdentifier=42"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME e_coli_sms_3_5 [
++  comment: "SpeciesIdentifier=13"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1705,12 +1866,14 @@
+ ALIAS 439855 e_coli_sms_3_5
+ 
+ DBNAME e_coli_sms_3_5_funcgen [
++  comment: "SpeciesIdentifier=13"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME e_coli_tw14359 [
++  comment: "SpeciesIdentifier=34"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1719,12 +1882,14 @@
+ ALIAS 544404 e_coli_tw14359
+ 
+ DBNAME e_coli_tw14359_funcgen [
++  comment: "SpeciesIdentifier=34"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME e_coli_uti89 [
++  comment: "SpeciesIdentifier=14"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1733,12 +1898,14 @@
+ ALIAS 364106 e_coli_uti89
+ 
+ DBNAME e_coli_uti89_funcgen [
++  comment: "SpeciesIdentifier=14"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME e_fergusonii [
++  comment: "SpeciesIdentifier=25"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -1747,6 +1914,7 @@
+ ALIAS 585054 e_fergusonii
+ 
+ DBNAME e_fergusonii_funcgen [
++  comment: "SpeciesIdentifier=25"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+@@ -1843,6 +2011,7 @@
+ ]
+ 
+ DBNAME mycobacterium_sp_jls [
++  comment: "SpeciesIdentifier=11"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
+@@ -1851,6 +2020,7 @@
+ ALIAS 164757 mycobacterium_sp_jls
+ 
+ DBNAME mycobacterium_sp_kms [
++  comment: "SpeciesIdentifier=12"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
+@@ -1859,6 +2029,7 @@
+ ALIAS 189918 mycobacterium_sp_kms
+ 
+ DBNAME mycobacterium_sp_mcs [
++  comment: "SpeciesIdentifier=13"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
+@@ -1867,6 +2038,7 @@
+ ALIAS 164756 mycobacterium_sp_mcs
+ 
+ DBNAME m_abscessus [
++  comment: "SpeciesIdentifier=2"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
+@@ -1875,6 +2047,7 @@
+ ALIAS 36809 m_abscessus
+ 
+ DBNAME m_avium [
++  comment: "SpeciesIdentifier=3"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
+@@ -1883,6 +2056,7 @@
+ ALIAS 243243 m_avium
+ 
+ DBNAME m_bovis_af2122_97 [
++  comment: "SpeciesIdentifier=4"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
+@@ -1891,6 +2065,7 @@
+ ALIAS 233413 m_bovis_af2122_97
+ 
+ DBNAME m_bovis_pasteur_1173p2 [
++  comment: "SpeciesIdentifier=5"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
+@@ -1899,6 +2074,7 @@
+ ALIAS 410289 m_bovis_pasteur_1173p2
+ 
+ DBNAME m_bovis_tokyo_172 [
++  comment: "SpeciesIdentifier=19"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
+@@ -1907,6 +2083,7 @@
+ ALIAS 561275 m_bovis_tokyo_172
+ 
+ DBNAME m_gilvum [
++  comment: "SpeciesIdentifier=6"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
+@@ -1915,6 +2092,7 @@
+ ALIAS 350054 m_gilvum
+ 
+ DBNAME m_leprae_br4923 [
++  comment: "SpeciesIdentifier=18"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
+@@ -1923,6 +2101,7 @@
+ ALIAS 561304 m_leprae_br4923
+ 
+ DBNAME m_leprae_tn [
++  comment: "SpeciesIdentifier=7"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
+@@ -1931,6 +2110,7 @@
+ ALIAS 272631 m_leprae_tn
+ 
+ DBNAME m_marinum [
++  comment: "SpeciesIdentifier=8"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
+@@ -1939,6 +2119,7 @@
+ ALIAS 216594 m_marinum
+ 
+ DBNAME m_paratuberculosis [
++  comment: "SpeciesIdentifier=9"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
+@@ -1947,6 +2128,7 @@
+ ALIAS 262316 m_paratuberculosis
+ 
+ DBNAME m_smegmatis [
++  comment: "SpeciesIdentifier=10"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
+@@ -1955,6 +2137,7 @@
+ ALIAS 246196 m_smegmatis
+ 
+ DBNAME m_tuberculosis_atcc_25177 [
++  comment: "SpeciesIdentifier=14"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
+@@ -1963,6 +2146,7 @@
+ ALIAS 419947 m_tuberculosis_atcc_25177
+ 
+ DBNAME m_tuberculosis_cdc1551 [
++  comment: "SpeciesIdentifier=15"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
+@@ -1971,6 +2155,7 @@
+ ALIAS 83331 m_tuberculosis_cdc1551
+ 
+ DBNAME m_tuberculosis_h37rv [
++  comment: "SpeciesIdentifier=1"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
+@@ -1979,6 +2164,7 @@
+ ALIAS 83332 m_tuberculosis_h37rv
+ 
+ DBNAME m_tuberculosis_kzn_1435 [
++  comment: "SpeciesIdentifier=21"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
+@@ -1987,6 +2173,7 @@
+ ALIAS 478434 m_tuberculosis_kzn_1435
+ 
+ DBNAME m_ulcerans [
++  comment: "SpeciesIdentifier=16"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
+@@ -1995,6 +2182,7 @@
+ ALIAS 362242 m_ulcerans
+ 
+ DBNAME m_vanbaalenii [
++  comment: "SpeciesIdentifier=17"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/mycobacterium_collection_core_9_62_3a"
+@@ -2030,6 +2218,7 @@
+ ALIAS n_crassa neurospora_crassa
+ 
+ DBNAME n_gonorrhoeae_atcc_700825 [
++  comment: "SpeciesIdentifier=2"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/neisseria_collection_core_9_62_3a"
+@@ -2038,6 +2227,7 @@
+ ALIAS 242231 n_gonorrhoeae_atcc_700825
+ 
+ DBNAME n_gonorrhoeae_nccp11945 [
++  comment: "SpeciesIdentifier=3"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/neisseria_collection_core_9_62_3a"
+@@ -2046,6 +2236,7 @@
+ ALIAS 521006 n_gonorrhoeae_nccp11945
+ 
+ DBNAME n_meningitidis_053442 [
++  comment: "SpeciesIdentifier=6"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/neisseria_collection_core_9_62_3a"
+@@ -2054,6 +2245,7 @@
+ ALIAS 374833 n_meningitidis_053442
+ 
+ DBNAME n_meningitidis_2a [
++  comment: "SpeciesIdentifier=4"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/neisseria_collection_core_9_62_3a"
+@@ -2062,6 +2254,7 @@
+ ALIAS 272831 n_meningitidis_2a
+ 
+ DBNAME n_meningitidis_8013 [
++  comment: "SpeciesIdentifier=8"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/neisseria_collection_core_9_62_3a"
+@@ -2070,6 +2263,7 @@
+ ALIAS 604162 n_meningitidis_8013
+ 
+ DBNAME n_meningitidis_a [
++  comment: "SpeciesIdentifier=1"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/neisseria_collection_core_9_62_3a"
+@@ -2078,6 +2272,7 @@
+ ALIAS 122587 n_meningitidis_a
+ 
+ DBNAME n_meningitidis_alpha14 [
++  comment: "SpeciesIdentifier=7"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/neisseria_collection_core_9_62_3a"
+@@ -2086,6 +2281,7 @@
+ ALIAS 487 n_meningitidis_alpha14
+ 
+ DBNAME n_meningitidis_b [
++  comment: "SpeciesIdentifier=5"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/neisseria_collection_core_9_62_3a"
+@@ -2330,6 +2526,7 @@
+ ]
+ 
+ DBNAME p_abyssi [
++  comment: "SpeciesIdentifier=2"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/pyrococcus_collection_core_9_62_1a"
+@@ -2338,6 +2535,7 @@
+ ALIAS 272844 p_abyssi
+ 
+ DBNAME p_furiosus [
++  comment: "SpeciesIdentifier=3"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/pyrococcus_collection_core_9_62_1a"
+@@ -2346,6 +2544,7 @@
+ ALIAS 186497 p_furiosus
+ 
+ DBNAME p_horikoshii [
++  comment: "SpeciesIdentifier=1"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/pyrococcus_collection_core_9_62_1a"
+@@ -2354,6 +2553,7 @@
+ ALIAS 70601 p_horikoshii
+ 
+ DBNAME p_kodakaraensis [
++  comment: "SpeciesIdentifier=4"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/pyrococcus_collection_core_9_62_1a"
+@@ -2428,6 +2628,7 @@
+ ALIAS 7668 strongylocentrotus_purpuratus
+ 
+ DBNAME s_agalactiae_ia [
++  comment: "SpeciesIdentifier=3"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -2436,6 +2637,7 @@
+ ALIAS 205921 s_agalactiae_ia
+ 
+ DBNAME s_agalactiae_iii [
++  comment: "SpeciesIdentifier=2"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -2444,6 +2646,7 @@
+ ALIAS 211110 s_agalactiae_iii
+ 
+ DBNAME s_agalactiae_v [
++  comment: "SpeciesIdentifier=4"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -2452,6 +2655,7 @@
+ ALIAS 208435 s_agalactiae_v
+ 
+ DBNAME s_aureus_04_02981 [
++  comment: "SpeciesIdentifier=24"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
+@@ -2460,12 +2664,14 @@
+ ALIAS 703339 s_aureus_04_02981
+ 
+ DBNAME s_aureus_04_02981_funcgen [
++  comment: "SpeciesIdentifier=24"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
+ ]
+ 
+ DBNAME s_aureus_bovine_rf122 [
++  comment: "SpeciesIdentifier=5"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
+@@ -2474,12 +2680,14 @@
+ ALIAS 273036 s_aureus_bovine_rf122
+ 
+ DBNAME s_aureus_bovine_rf122_funcgen [
++  comment: "SpeciesIdentifier=5"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
+ ]
+ 
+ DBNAME s_aureus_col [
++  comment: "SpeciesIdentifier=4"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
+@@ -2488,12 +2696,14 @@
+ ALIAS 93062 s_aureus_col
+ 
+ DBNAME s_aureus_col_funcgen [
++  comment: "SpeciesIdentifier=4"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
+ ]
+ 
+ DBNAME s_aureus_ed133 [
++  comment: "SpeciesIdentifier=25"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
+@@ -2502,12 +2712,14 @@
+ ALIAS 685039 s_aureus_ed133
+ 
+ DBNAME s_aureus_ed133_funcgen [
++  comment: "SpeciesIdentifier=25"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
+ ]
+ 
+ DBNAME s_aureus_ed98 [
++  comment: "SpeciesIdentifier=21"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
+@@ -2516,12 +2728,14 @@
+ ALIAS 681288 s_aureus_ed98
+ 
+ DBNAME s_aureus_ed98_funcgen [
++  comment: "SpeciesIdentifier=21"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
+ ]
+ 
+ DBNAME s_aureus_jh1 [
++  comment: "SpeciesIdentifier=6"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
+@@ -2530,12 +2744,14 @@
+ ALIAS 359787 s_aureus_jh1
+ 
+ DBNAME s_aureus_jh1_funcgen [
++  comment: "SpeciesIdentifier=6"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
+ ]
+ 
+ DBNAME s_aureus_jh9 [
++  comment: "SpeciesIdentifier=7"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
+@@ -2544,12 +2760,14 @@
+ ALIAS 359786 s_aureus_jh9
+ 
+ DBNAME s_aureus_jh9_funcgen [
++  comment: "SpeciesIdentifier=7"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
+ ]
+ 
+ DBNAME s_aureus_jkd6008 [
++  comment: "SpeciesIdentifier=26"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
+@@ -2558,12 +2776,14 @@
+ ALIAS 546342 s_aureus_jkd6008
+ 
+ DBNAME s_aureus_jkd6008_funcgen [
++  comment: "SpeciesIdentifier=26"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
+ ]
+ 
+ DBNAME s_aureus_jkd6159 [
++  comment: "SpeciesIdentifier=23"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
+@@ -2572,12 +2792,14 @@
+ ALIAS 869816 s_aureus_jkd6159
+ 
+ DBNAME s_aureus_jkd6159_funcgen [
++  comment: "SpeciesIdentifier=23"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
+ ]
+ 
+ DBNAME s_aureus_mrsa252 [
++  comment: "SpeciesIdentifier=8"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
+@@ -2586,12 +2808,14 @@
+ ALIAS 282458 s_aureus_mrsa252
+ 
+ DBNAME s_aureus_mrsa252_funcgen [
++  comment: "SpeciesIdentifier=8"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
+ ]
+ 
+ DBNAME s_aureus_mssa476 [
++  comment: "SpeciesIdentifier=9"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
+@@ -2600,12 +2824,14 @@
+ ALIAS 282459 s_aureus_mssa476
+ 
+ DBNAME s_aureus_mssa476_funcgen [
++  comment: "SpeciesIdentifier=9"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
+ ]
+ 
+ DBNAME s_aureus_mu3 [
++  comment: "SpeciesIdentifier=2"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
+@@ -2614,12 +2840,14 @@
+ ALIAS 418127 s_aureus_mu3
+ 
+ DBNAME s_aureus_mu3_funcgen [
++  comment: "SpeciesIdentifier=2"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
+ ]
+ 
+ DBNAME s_aureus_mu50 [
++  comment: "SpeciesIdentifier=3"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
+@@ -2628,12 +2856,14 @@
+ ALIAS 158878 s_aureus_mu50
+ 
+ DBNAME s_aureus_mu50_funcgen [
++  comment: "SpeciesIdentifier=3"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
+ ]
+ 
+ DBNAME s_aureus_mw2 [
++  comment: "SpeciesIdentifier=10"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
+@@ -2642,12 +2872,14 @@
+ ALIAS 196620 s_aureus_mw2
+ 
+ DBNAME s_aureus_mw2_funcgen [
++  comment: "SpeciesIdentifier=10"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
+ ]
+ 
+ DBNAME s_aureus_n315 [
++  comment: "SpeciesIdentifier=1"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
+@@ -2656,12 +2888,14 @@
+ ALIAS 158879 s_aureus_n315
+ 
+ DBNAME s_aureus_n315_funcgen [
++  comment: "SpeciesIdentifier=1"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
+ ]
+ 
+ DBNAME s_aureus_nctc_8325 [
++  comment: "SpeciesIdentifier=11"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
+@@ -2670,12 +2904,14 @@
+ ALIAS 93061 s_aureus_nctc_8325
+ 
+ DBNAME s_aureus_nctc_8325_funcgen [
++  comment: "SpeciesIdentifier=11"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
+ ]
+ 
+ DBNAME s_aureus_newman [
++  comment: "SpeciesIdentifier=12"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
+@@ -2684,12 +2920,14 @@
+ ALIAS 426430 s_aureus_newman
+ 
+ DBNAME s_aureus_newman_funcgen [
++  comment: "SpeciesIdentifier=12"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
+ ]
+ 
+ DBNAME s_aureus_st398 [
++  comment: "SpeciesIdentifier=20"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
+@@ -2698,12 +2936,14 @@
+ ALIAS 523796 s_aureus_st398
+ 
+ DBNAME s_aureus_st398_funcgen [
++  comment: "SpeciesIdentifier=20"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
+ ]
+ 
+ DBNAME s_aureus_tch1516 [
++  comment: "SpeciesIdentifier=13"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
+@@ -2712,12 +2952,14 @@
+ ALIAS 451516 s_aureus_tch1516
+ 
+ DBNAME s_aureus_tch1516_funcgen [
++  comment: "SpeciesIdentifier=13"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
+ ]
+ 
+ DBNAME s_aureus_tw20 [
++  comment: "SpeciesIdentifier=22"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
+@@ -2726,12 +2968,14 @@
+ ALIAS 663951 s_aureus_tw20
+ 
+ DBNAME s_aureus_tw20_funcgen [
++  comment: "SpeciesIdentifier=22"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
+ ]
+ 
+ DBNAME s_aureus_usa300 [
++  comment: "SpeciesIdentifier=14"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
+@@ -2740,12 +2984,14 @@
+ ALIAS 451515 s_aureus_usa300
+ 
+ DBNAME s_aureus_usa300_funcgen [
++  comment: "SpeciesIdentifier=14"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
+ ]
+ 
+ DBNAME s_boydii_18 [
++  comment: "SpeciesIdentifier=15"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -2754,12 +3000,14 @@
+ ALIAS 344609 s_boydii_18
+ 
+ DBNAME s_boydii_18_funcgen [
++  comment: "SpeciesIdentifier=15"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME s_boydii_4 [
++  comment: "SpeciesIdentifier=16"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -2768,12 +3016,14 @@
+ ALIAS 300268 s_boydii_4
+ 
+ DBNAME s_boydii_4_funcgen [
++  comment: "SpeciesIdentifier=16"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME s_carnosus [
++  comment: "SpeciesIdentifier=19"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
+@@ -2782,12 +3032,14 @@
+ ALIAS 396513 s_carnosus
+ 
+ DBNAME s_carnosus_funcgen [
++  comment: "SpeciesIdentifier=19"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
+ ]
+ 
+ DBNAME s_dysenteriae [
++  comment: "SpeciesIdentifier=17"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -2796,12 +3048,14 @@
+ ALIAS 300267 s_dysenteriae
+ 
+ DBNAME s_dysenteriae_funcgen [
++  comment: "SpeciesIdentifier=17"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME s_dysgalactiae [
++  comment: "SpeciesIdentifier=40"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -2810,6 +3064,7 @@
+ ALIAS 486410 s_dysgalactiae
+ 
+ DBNAME s_epidermidis_atcc_12228 [
++  comment: "SpeciesIdentifier=15"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
+@@ -2818,12 +3073,14 @@
+ ALIAS 176280 s_epidermidis_atcc_12228
+ 
+ DBNAME s_epidermidis_atcc_12228_funcgen [
++  comment: "SpeciesIdentifier=15"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
+ ]
+ 
+ DBNAME s_epidermidis_atcc_35984 [
++  comment: "SpeciesIdentifier=16"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
+@@ -2832,12 +3089,14 @@
+ ALIAS 176279 s_epidermidis_atcc_35984
+ 
+ DBNAME s_epidermidis_atcc_35984_funcgen [
++  comment: "SpeciesIdentifier=16"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
+ ]
+ 
+ DBNAME s_equi [
++  comment: "SpeciesIdentifier=33"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -2846,6 +3105,7 @@
+ ALIAS 553482 s_equi
+ 
+ DBNAME s_equi_mgcs10565 [
++  comment: "SpeciesIdentifier=5"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -2854,6 +3114,7 @@
+ ALIAS 552526 s_equi_mgcs10565
+ 
+ DBNAME s_equi_zooepidemicus [
++  comment: "SpeciesIdentifier=32"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -2862,6 +3123,7 @@
+ ALIAS 40041 s_equi_zooepidemicus
+ 
+ DBNAME s_flexneri_2457t [
++  comment: "SpeciesIdentifier=18"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -2870,12 +3132,14 @@
+ ALIAS 198215 s_flexneri_2457t
+ 
+ DBNAME s_flexneri_2457t_funcgen [
++  comment: "SpeciesIdentifier=18"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME s_flexneri_301 [
++  comment: "SpeciesIdentifier=19"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -2884,12 +3148,14 @@
+ ALIAS 198214 s_flexneri_301
+ 
+ DBNAME s_flexneri_301_funcgen [
++  comment: "SpeciesIdentifier=19"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME s_flexneri_5b [
++  comment: "SpeciesIdentifier=20"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -2898,12 +3164,14 @@
+ ALIAS 373384 s_flexneri_5b
+ 
+ DBNAME s_flexneri_5b_funcgen [
++  comment: "SpeciesIdentifier=20"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME s_flexneri_x [
++  comment: "SpeciesIdentifier=41"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -2912,12 +3180,14 @@
+ ALIAS 591020 s_flexneri_x
+ 
+ DBNAME s_flexneri_x_funcgen [
++  comment: "SpeciesIdentifier=41"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME s_gallolyticus [
++  comment: "SpeciesIdentifier=45"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -2926,6 +3196,7 @@
+ ALIAS 637909 s_gallolyticus
+ 
+ DBNAME s_gordonii [
++  comment: "SpeciesIdentifier=6"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -2934,6 +3205,7 @@
+ ALIAS 467705 s_gordonii
+ 
+ DBNAME s_haemolyticus [
++  comment: "SpeciesIdentifier=17"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
+@@ -2942,12 +3214,14 @@
+ ALIAS 279808 s_haemolyticus
+ 
+ DBNAME s_haemolyticus_funcgen [
++  comment: "SpeciesIdentifier=17"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
+ ]
+ 
+ DBNAME s_lugdunensis [
++  comment: "SpeciesIdentifier=27"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
+@@ -2956,12 +3230,14 @@
+ ALIAS 698737 s_lugdunensis
+ 
+ DBNAME s_lugdunensis_funcgen [
++  comment: "SpeciesIdentifier=27"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
+ ]
+ 
+ DBNAME s_mitis [
++  comment: "SpeciesIdentifier=48"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -2970,6 +3246,7 @@
+ ALIAS 365659 s_mitis
+ 
+ DBNAME s_mutans_atcc_700610 [
++  comment: "SpeciesIdentifier=7"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -2978,6 +3255,7 @@
+ ALIAS 210007 s_mutans_atcc_700610
+ 
+ DBNAME s_mutans_nn2025 [
++  comment: "SpeciesIdentifier=44"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -2986,6 +3264,7 @@
+ ALIAS 511691 s_mutans_nn2025
+ 
+ DBNAME s_pneumoniae_70585 [
++  comment: "SpeciesIdentifier=34"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -2994,6 +3273,7 @@
+ ALIAS 488221 s_pneumoniae_70585
+ 
+ DBNAME s_pneumoniae_a19 [
++  comment: "SpeciesIdentifier=49"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -3002,6 +3282,7 @@
+ ALIAS 525381 s_pneumoniae_a19
+ 
+ DBNAME s_pneumoniae_atcc_700669 [
++  comment: "SpeciesIdentifier=39"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -3010,6 +3291,7 @@
+ ALIAS 561276 s_pneumoniae_atcc_700669
+ 
+ DBNAME s_pneumoniae_atcc_baa_255 [
++  comment: "SpeciesIdentifier=8"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -3018,6 +3300,7 @@
+ ALIAS 171101 s_pneumoniae_atcc_baa_255
+ 
+ DBNAME s_pneumoniae_cgsp14 [
++  comment: "SpeciesIdentifier=9"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -3026,6 +3309,7 @@
+ ALIAS 516950 s_pneumoniae_cgsp14
+ 
+ DBNAME s_pneumoniae_d39 [
++  comment: "SpeciesIdentifier=10"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -3034,6 +3318,7 @@
+ ALIAS 373153 s_pneumoniae_d39
+ 
+ DBNAME s_pneumoniae_g54 [
++  comment: "SpeciesIdentifier=11"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -3042,6 +3327,7 @@
+ ALIAS 512566 s_pneumoniae_g54
+ 
+ DBNAME s_pneumoniae_hungary19a_6 [
++  comment: "SpeciesIdentifier=12"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -3050,6 +3336,7 @@
+ ALIAS 487214 s_pneumoniae_hungary19a_6
+ 
+ DBNAME s_pneumoniae_jja [
++  comment: "SpeciesIdentifier=35"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -3058,6 +3345,7 @@
+ ALIAS 488222 s_pneumoniae_jja
+ 
+ DBNAME s_pneumoniae_p1031 [
++  comment: "SpeciesIdentifier=37"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -3066,6 +3354,7 @@
+ ALIAS 488223 s_pneumoniae_p1031
+ 
+ DBNAME s_pneumoniae_taiwan19f_14 [
++  comment: "SpeciesIdentifier=36"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -3074,6 +3363,7 @@
+ ALIAS 487213 s_pneumoniae_taiwan19f_14
+ 
+ DBNAME s_pneumoniae_tigr4 [
++  comment: "SpeciesIdentifier=13"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -3082,6 +3372,7 @@
+ ALIAS 170187 s_pneumoniae_tigr4
+ 
+ DBNAME s_pyogenes_atcc_baa_595 [
++  comment: "SpeciesIdentifier=17"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -3090,6 +3381,7 @@
+ ALIAS 198466 s_pyogenes_atcc_baa_595
+ 
+ DBNAME s_pyogenes_m18 [
++  comment: "SpeciesIdentifier=15"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -3098,6 +3390,7 @@
+ ALIAS 186103 s_pyogenes_m18
+ 
+ DBNAME s_pyogenes_m2 [
++  comment: "SpeciesIdentifier=20"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -3106,6 +3399,7 @@
+ ALIAS 370552 s_pyogenes_m2
+ 
+ DBNAME s_pyogenes_m28 [
++  comment: "SpeciesIdentifier=16"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -3114,6 +3408,7 @@
+ ALIAS 319701 s_pyogenes_m28
+ 
+ DBNAME s_pyogenes_m4 [
++  comment: "SpeciesIdentifier=21"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -3122,6 +3417,7 @@
+ ALIAS 370554 s_pyogenes_m4
+ 
+ DBNAME s_pyogenes_m49 [
++  comment: "SpeciesIdentifier=25"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -3130,6 +3426,7 @@
+ ALIAS 471876 s_pyogenes_m49
+ 
+ DBNAME s_pyogenes_m5 [
++  comment: "SpeciesIdentifier=24"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -3138,6 +3435,7 @@
+ ALIAS 160491 s_pyogenes_m5
+ 
+ DBNAME s_pyogenes_m6 [
++  comment: "SpeciesIdentifier=19"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -3146,6 +3444,7 @@
+ ALIAS 286636 s_pyogenes_m6
+ 
+ DBNAME s_pyogenes_mgas2096 [
++  comment: "SpeciesIdentifier=22"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -3154,6 +3453,7 @@
+ ALIAS 370553 s_pyogenes_mgas2096
+ 
+ DBNAME s_pyogenes_mgas5005 [
++  comment: "SpeciesIdentifier=14"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -3162,6 +3462,7 @@
+ ALIAS 293653 s_pyogenes_mgas5005
+ 
+ DBNAME s_pyogenes_mgas9429 [
++  comment: "SpeciesIdentifier=23"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -3170,6 +3471,7 @@
+ ALIAS 370551 s_pyogenes_mgas9429
+ 
+ DBNAME s_pyogenes_sf370 [
++  comment: "SpeciesIdentifier=1"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -3178,6 +3480,7 @@
+ ALIAS 160490 s_pyogenes_sf370
+ 
+ DBNAME s_pyogenes_ssi_1 [
++  comment: "SpeciesIdentifier=18"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -3186,6 +3489,7 @@
+ ALIAS 193567 s_pyogenes_ssi_1
+ 
+ DBNAME s_sanguinis [
++  comment: "SpeciesIdentifier=26"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -3194,6 +3498,7 @@
+ ALIAS 388919 s_sanguinis
+ 
+ DBNAME s_saprophyticus [
++  comment: "SpeciesIdentifier=18"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_core_9_62_4a"
+@@ -3202,12 +3507,14 @@
+ ALIAS 342451 s_saprophyticus
+ 
+ DBNAME s_saprophyticus_funcgen [
++  comment: "SpeciesIdentifier=18"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/staphylococcus_collection_funcgen_9_62_4a"
+ ]
+ 
+ DBNAME s_sonnei [
++  comment: "SpeciesIdentifier=21"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_core_9_62_5a"
+@@ -3216,12 +3523,14 @@
+ ALIAS 300269 s_sonnei
+ 
+ DBNAME s_sonnei_funcgen [
++  comment: "SpeciesIdentifier=21"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/escherichia_shigella_collection_funcgen_9_62_5a"
+ ]
+ 
+ DBNAME s_suis_05zyh33 [
++  comment: "SpeciesIdentifier=27"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -3230,6 +3539,7 @@
+ ALIAS 391295 s_suis_05zyh33
+ 
+ DBNAME s_suis_98hah33 [
++  comment: "SpeciesIdentifier=28"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -3238,6 +3548,7 @@
+ ALIAS 391296 s_suis_98hah33
+ 
+ DBNAME s_suis_bm407 [
++  comment: "SpeciesIdentifier=42"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -3246,6 +3557,7 @@
+ ALIAS 568814 s_suis_bm407
+ 
+ DBNAME s_suis_gz1 [
++  comment: "SpeciesIdentifier=50"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -3254,6 +3566,7 @@
+ ALIAS 423211 s_suis_gz1
+ 
+ DBNAME s_suis_p1_7 [
++  comment: "SpeciesIdentifier=43"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -3262,6 +3575,7 @@
+ ALIAS 218494 s_suis_p1_7
+ 
+ DBNAME s_suis_sc84 [
++  comment: "SpeciesIdentifier=41"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -3270,6 +3584,7 @@
+ ALIAS 568813 s_suis_sc84
+ 
+ DBNAME s_thermophilus_atcc_baa_250 [
++  comment: "SpeciesIdentifier=29"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -3278,6 +3593,7 @@
+ ALIAS 264199 s_thermophilus_atcc_baa_250
+ 
+ DBNAME s_thermophilus_atcc_baa_491 [
++  comment: "SpeciesIdentifier=30"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -3286,6 +3602,7 @@
+ ALIAS 322159 s_thermophilus_atcc_baa_491
+ 
+ DBNAME s_thermophilus_cnrz_1066 [
++  comment: "SpeciesIdentifier=31"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -3294,6 +3611,7 @@
+ ALIAS 299768 s_thermophilus_cnrz_1066
+ 
+ DBNAME s_uberis [
++  comment: "SpeciesIdentifier=38"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/streptococcus_collection_core_9_62_4a"
+@@ -3350,6 +3668,7 @@
+ ]
+ 
+ DBNAME wolbachia_sp_brugia_malayi [
++  comment: "SpeciesIdentifier=3"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/wolbachia_collection_core_9_62_1a"
+@@ -3358,6 +3677,7 @@
+ ALIAS 292805 wolbachia_sp_brugia_malayi
+ 
+ DBNAME wolbachia_sp_drosophila_simulans [
++  comment: "SpeciesIdentifier=2"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/wolbachia_collection_core_9_62_1a"
+@@ -3366,6 +3686,7 @@
+ ALIAS 66084 wolbachia_sp_drosophila_simulans
+ 
+ DBNAME w_pipientis_culex_pipiens [
++  comment: "SpeciesIdentifier=1"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/wolbachia_collection_core_9_62_1a"
+@@ -3374,6 +3695,7 @@
+ ALIAS 570417 w_pipientis_culex_pipiens
+ 
+ DBNAME w_pipientis_wmel [
++  comment: "SpeciesIdentifier=4"
+   release: "62"
+   server:  "ensemblgenomes"
+   url:     "mysql://anonymous@mysql.ebi.ac.uk:4157/wolbachia_collection_core_9_62_1a"
+--- emboss-6.4.0.orig/nucleus/embgroup.c
++++ emboss-6.4.0/nucleus/embgroup.c
+@@ -1173,7 +1173,7 @@
+     AjPStr tail;
+     AjPStr revhead;
+     AjPStr revtail;
+-    AjPStr dummy;		 /* dummy string for ajListstrPop() */
++    AjPStr dummy = NULL;        /* dummy string for ajListstrPop() */
+ 
+ 
+     len = ajListstrToarray(sublist, &sub);
diff --git a/debian/patches/tfm-html.patch b/debian/patches/tfm-html.patch
index 2827e8c..32e504a 100644
--- a/debian/patches/tfm-html.patch
+++ b/debian/patches/tfm-html.patch
@@ -1,9 +1,9 @@
 Author: Charles Plessy
 Forwarded: https://sourceforge.net/tracker/?func=detail&aid=2877960&group_id=93650&atid=605031
 Description: Corrects the name of the directory where tfm looks for HTML documentation.
---- emboss.orig/emboss/tfm.c
-+++ emboss/emboss/tfm.c
-@@ -215,7 +215,7 @@
+--- emboss-6.4.0.orig/emboss/tfm.c
++++ emboss-6.4.0/emboss/tfm.c
+@@ -231,7 +231,7 @@
  	**  if that didn't work then try the doc directory from the
  	**  distribution tarball
  	*/
diff --git a/debian/patches/using-pager-in-tfm.patch b/debian/patches/using-pager-in-tfm.patch
index fa1d5a1..ac83937 100644
--- a/debian/patches/using-pager-in-tfm.patch
+++ b/debian/patches/using-pager-in-tfm.patch
@@ -6,8 +6,8 @@ Description: Browse the documentation with default pager.
  alternatives system. With this patch, `tfm' will use `/usr/bin/pager' by
  default, which points on the user's favorite pager.
 License: as if it were public domain.
---- emboss.orig/emboss/tfm.c
-+++ emboss/emboss/tfm.c
+--- emboss-6.4.0.orig/emboss/tfm.c
++++ emboss-6.4.0/emboss/tfm.c
 @@ -87,7 +87,7 @@
  	    if(shellpager)
  		ajStrAssignC(&pager,shellpager);
diff --git a/debian/rules b/debian/rules
index 0913369..d0a8e71 100755
--- a/debian/rules
+++ b/debian/rules
@@ -3,7 +3,7 @@
 export DH_VERBOSE=1
 
 %:
-	dh $@ --with autotools-dev,quilt
+	dh $@ --with autotools-dev
 
 VERSION := $(shell dpkg-parsechangelog | grep Ver | cut -d' ' -f2 | cut -d- -f1)
 RENAMED := cons pscan
diff --git a/debian/source/format b/debian/source/format
new file mode 100644
index 0000000..163aaf8
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)

-- 
The European Molecular Biology Open Software Suite.



More information about the debian-med-commit mailing list