diff options
Diffstat (limited to 'academic/EMBOSS')
-rw-r--r-- | academic/EMBOSS/EMBOSS.SlackBuild | 6 | ||||
-rw-r--r-- | academic/EMBOSS/patch-1-21 | 7232 |
2 files changed, 7237 insertions, 1 deletions
diff --git a/academic/EMBOSS/EMBOSS.SlackBuild b/academic/EMBOSS/EMBOSS.SlackBuild index 3ef67501d8..900b1fd602 100644 --- a/academic/EMBOSS/EMBOSS.SlackBuild +++ b/academic/EMBOSS/EMBOSS.SlackBuild @@ -10,7 +10,7 @@ PRGNAM=EMBOSS VERSION=${VERSION:-6.4.0} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} TAG=${TAG:-_SBo} if [ -z "$ARCH" ]; then @@ -48,6 +48,10 @@ cd $TMP rm -rf $PRGNAM-$VERSION tar xvf $CWD/$PRGNAM-$VERSION.tar.gz cd $PRGNAM-$VERSION + +# Apply EMBOSS bug-fix set 1-21. Thanks to ajb@ebi.ac.uk! +patch -p1 < $CWD/patch-1-21 + chown -R root:root . find . \ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ diff --git a/academic/EMBOSS/patch-1-21 b/academic/EMBOSS/patch-1-21 new file mode 100644 index 0000000000..cb182c65c8 --- /dev/null +++ b/academic/EMBOSS/patch-1-21 @@ -0,0 +1,7232 @@ +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. + */ + ++ dbidre = ajRegCompC("SpeciesIdentifier=(\\d+)"); ++ + value = ajStrNew(); + + svrnames = ajListstrNew(); +*************** +*** 2103,2119 **** + + registrySourceRegister(source, ®istered); + + 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, ®istered); + ++ 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); |