97052b54a39bd15ffd0f610bdb16ccd0ea65ca53 angie Mon Jun 10 14:37:22 2013 -0700 Added a chunked-query mode to annoStreamDb, similar to that of annoStreamBigBed,so that we can quickly drain sqlResults from smaller queries instead of keeping a genome-wide sqlResult open for the whole time we're processing -- that was making mysql have mysterious hangs on hgwdev. (http://bugs.mysql.com/bug.php?id=50399) diff --git src/lib/annoAssembly.c src/lib/annoAssembly.c index 9bce1d9..23453ec 100644 --- src/lib/annoAssembly.c +++ src/lib/annoAssembly.c @@ -1,33 +1,43 @@ /* annoAssembly -- basic metadata about an assembly for the annoGrator framework. */ #include "common.h" #include "twoBit.h" #include "annoAssembly.h" struct annoAssembly *annoAssemblyNew(char *name, char *twoBitPath) /* Return an annoAssembly with open twoBitFile. */ { struct annoAssembly *aa; AllocVar(aa); aa->name = cloneString(name); aa->tbf = twoBitOpen(twoBitPath); +aa->twoBitPath = cloneString(twoBitPath); return aa; } +struct slName *annoAssemblySeqNames(struct annoAssembly *aa) +/* Return a list of sequence names in this assembly. */ +{ +struct slName *seqNames = twoBitSeqNames(aa->twoBitPath); +slSort(&seqNames, slNameCmp); +return seqNames; +} + uint annoAssemblySeqSize(struct annoAssembly *aa, char *seqName) /* Return the number of bases in seq which must be in aa's twoBitFile. */ { return (uint)twoBitSeqSize(aa->tbf, seqName); } void annoAssemblyClose(struct annoAssembly **pAa) /* Close aa's twoBitFile and free mem. */ { if (*pAa == NULL) return; struct annoAssembly *aa = *pAa; freeMem(aa->name); +freeMem(aa->twoBitPath); twoBitClose(&(aa->tbf)); freez(pAa); }