7469d0027b6c5e5ca9b4a98457c8b1b756aa5f2f jcasper Wed Nov 18 09:35:52 2015 -0800 Fix for issue where gsBig failed to merge segments after it had skipped over one containing all Ns, refs #16220 diff --git src/hg/gsBig/gsBig.c src/hg/gsBig/gsBig.c index d30badc..4db8434 100644 --- src/hg/gsBig/gsBig.c +++ src/hg/gsBig/gsBig.c @@ -662,30 +662,34 @@ if (sizeOne > winSize) sizeOne = winSize; /* Genscan hangs forever if a chunk is all-N's... if so, * then skip this chunk. */ for (i=offset; i < (offset+sizeOne); i++) { if (seq.dna[i] != 'N' && seq.dna[i] != 'n') { allN = FALSE; break; } } if (allN) { printf("\ngsBig: skipping %s[%d:%d] -- it's all N's.\n\n", seqName, offset, (offset+sizeOne-1)); + AllocVar(seg); + seg->start = offset; + seg->end = offset+sizeOne; + slAddHead(&segList, seg); } else { faWrite(tempFa, "split", seq.dna + offset, sizeOne); dyStringClear(dy); dyStringPrintf(dy, "%s %s %s", exePath, parPath, tempFa); if (suboptName != NULL) dyStringPrintf(dy, " -subopt"); dyStringPrintf(dy, " > %s", tempGs); verbose(3, "%s\n", dy->string); mustSystem(dy->string); seg = parseSegment(tempGs, offset, offset+sizeOne, NULL); slAddHead(&segList, seg); } chunkNum++;