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-10-05 14:56:07.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-10-05 14:56:07.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-10-05 14:56:07.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-10-05 14:56:07.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/ajfileio.c EMBOSS-6.4.0/ajax/core/ajfileio.c *** EMBOSS-6.4.0old/ajax/core/ajfileio.c 2011-05-24 13:51:54.000000000 +0100 --- EMBOSS-6.4.0/ajax/core/ajfileio.c 2011-10-05 14:56:07.000000000 +0100 *************** *** 2006,2025 **** { AjBool ret; ajlong fpos = 0; - AjPStr dest; ret = ajBuffreadLinePos(buff, Pdest, &fpos); /* trim any trailing newline */ - dest = *Pdest; - /*ajDebug("Remove carriage-return characters from PC-style files\n");*/ ! if(ajStrGetCharLast(dest) == '\n') ajStrCutEnd(Pdest, 1); /* PC files have \r\n Macintosh files have just \r : this fixes both */ ! if(ajStrGetCharLast(dest) == '\r') ajStrCutEnd(Pdest, 1); return ret; --- 2006,2022 ---- { AjBool ret; ajlong fpos = 0; ret = ajBuffreadLinePos(buff, Pdest, &fpos); /* trim any trailing newline */ /*ajDebug("Remove carriage-return characters from PC-style files\n");*/ ! if(ajStrGetCharLast(*Pdest) == '\n') ajStrCutEnd(Pdest, 1); /* PC files have \r\n Macintosh files have just \r : this fixes both */ ! if(ajStrGetCharLast(*Pdest) == '\r') ajStrCutEnd(Pdest, 1); return ret; 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-10-05 18:22:48.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/ajindex.c EMBOSS-6.4.0/ajax/core/ajindex.c *** EMBOSS-6.4.0old/ajax/core/ajindex.c 2011-07-13 11:59:06.000000000 +0100 --- EMBOSS-6.4.0/ajax/core/ajindex.c 2011-10-05 14:56:07.000000000 +0100 *************** *** 650,655 **** --- 650,659 ---- ajTablePut(btreeFieldsTable, field->Name, (void*) field); + field = btreeFieldNewField(&btreeFields[i]); + ajTablePut(btreeFieldsTable, + field->Extension, + (void*) field); } return; 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-10-05 14:56:07.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-10-05 14:56:07.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-10-05 14:56:07.000000000 +0100 *************** *** 752,757 **** --- 752,759 ---- default: mismreg = ajRegCompC(""); + 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-10-05 14:56:07.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-10-05 14:56:07.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/ajreport.c EMBOSS-6.4.0/ajax/core/ajreport.c *** EMBOSS-6.4.0old/ajax/core/ajreport.c 2011-07-08 15:54:59.000000000 +0100 --- EMBOSS-6.4.0/ajax/core/ajreport.c 2011-10-05 14:56:07.000000000 +0100 *************** *** 677,682 **** --- 677,684 ---- istart = feature->Start; iend = feature->End; ilen = iend - istart + 1; + if(ilen == 2 && (feature->Flags & FEATFLAG_BETWEEN_SEQ)) + ilen = 0; ajStrAssignSubS(&subseq, seqalias, istart-1, iend-1); /* ajStrFmtUpper(&subseq); */ i++; 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-10-05 14:56:07.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-10-05 14:56:07.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;jNseq;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;jNseq;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;jNseq;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;jNseq;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-10-05 14:56:07.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-10-05 14:56:07.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-10-05 14:56:07.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-10-05 14:56:07.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-10-05 14:56:07.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-10-05 14:56:07.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-10-05 14:56:08.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-10-05 14:56:08.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-10-05 14:56:08.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-10-05 14:56:08.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-10-05 14:56:08.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/diffseq.c EMBOSS-6.4.0/emboss/diffseq.c *** EMBOSS-6.4.0old/emboss/diffseq.c 2010-04-14 09:19:27.000000000 +0100 --- EMBOSS-6.4.0/emboss/diffseq.c 2011-10-05 14:56:08.000000000 +0100 *************** *** 338,344 **** } else { ! gf = ajFeatNewII(ftab, diff->End1, diff->End1-1); ajStrAssignC(&tmp, ""); } diffseq_Features("first_feature", gf, --- 338,345 ---- } else { ! gf = ajFeatNewII(ftab, diff->Start1-1, diff->Start1); ! gf->Flags |= FEATFLAG_BETWEEN_SEQ; ajStrAssignC(&tmp, ""); } diffseq_Features("first_feature", gf, 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-10-05 14:56:08.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-10-05 14:56:08.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-10-05 14:56:08.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-10-05 14:56:08.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-10-05 14:56:08.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-10-05 14:56:08.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);