3afb1ad18d251832c36c02910ba194a3996ab47a braney Mon May 9 14:56:22 2016 -0700 some changes to bigPsl format diff --git src/hg/lib/bigPsl.c src/hg/lib/bigPsl.c index 4991fba..af55dbe 100644 --- src/hg/lib/bigPsl.c +++ src/hg/lib/bigPsl.c @@ -39,31 +39,31 @@ int sizeOne; sqlSignedDynamicArray(row[11], &ret->chromStarts, &sizeOne); assert(sizeOne == ret->blockCount); } ret->oChromStart = sqlUnsigned(row[12]); ret->oChromEnd = sqlUnsigned(row[13]); safecpy(ret->oStrand, sizeof(ret->oStrand), row[14]); ret->oChromSize = sqlUnsigned(row[15]); { int sizeOne; sqlSignedDynamicArray(row[16], &ret->oChromStarts, &sizeOne); assert(sizeOne == ret->blockCount); } ret->oSequence = cloneString(row[17]); ret->oCDS = cloneString(row[18]); -ret->oBlock = sqlUnsigned(row[19]); +ret->chromSize = sqlUnsigned(row[19]); ret->match = sqlUnsigned(row[20]); ret->misMatch = sqlUnsigned(row[21]); ret->repMatch = sqlUnsigned(row[22]); ret->nCount = sqlUnsigned(row[23]); return ret; } struct bigPsl *bigPslLoadAll(char *fileName) /* Load all bigPsl from a whitespace-separated file. * Dispose of this with bigPslFreeList(). */ { struct bigPsl *list = NULL, *el; struct lineFile *lf = lineFileOpen(fileName, TRUE); char *row[24]; @@ -141,31 +141,31 @@ sqlFixedStringComma(&s, ret->oStrand, sizeof(ret->oStrand)); ret->oChromSize = sqlUnsignedComma(&s); { int i; s = sqlEatChar(s, '{'); AllocArray(ret->oChromStarts, ret->blockCount); for (i=0; i<ret->blockCount; ++i) { ret->oChromStarts[i] = sqlUnsignedComma(&s); } s = sqlEatChar(s, '}'); s = sqlEatChar(s, ','); } ret->oSequence = sqlStringComma(&s); ret->oCDS = sqlStringComma(&s); -ret->oBlock = sqlUnsignedComma(&s); +ret->chromSize = sqlUnsignedComma(&s); ret->match = sqlUnsignedComma(&s); ret->misMatch = sqlUnsignedComma(&s); ret->repMatch = sqlUnsignedComma(&s); ret->nCount = sqlUnsignedComma(&s); *pS = s; return ret; } void bigPslFree(struct bigPsl **pEl) /* Free a single dynamically allocated bigPsl such as created * with bigPslLoad(). */ { struct bigPsl *el; if ((el = *pEl) == NULL) return; @@ -260,79 +260,78 @@ { fprintf(f, "%u", el->oChromStarts[i]); fputc(',', f); } if (sep == ',') fputc('}',f); } fputc(sep,f); if (sep == ',') fputc('"',f); fprintf(f, "%s", el->oSequence); if (sep == ',') fputc('"',f); fputc(sep,f); if (sep == ',') fputc('"',f); fprintf(f, "%s", el->oCDS); if (sep == ',') fputc('"',f); fputc(sep,f); -fprintf(f, "%u", el->oBlock); +fprintf(f, "%u", el->chromSize); fputc(sep,f); fprintf(f, "%u", el->match); fputc(sep,f); fprintf(f, "%u", el->misMatch); fputc(sep,f); fprintf(f, "%u", el->repMatch); fputc(sep,f); fprintf(f, "%u", el->nCount); fputc(lastSep,f); } /* -------------------------------- End autoSql Generated Code -------------------------------- */ -struct psl *pslFromBigPsl( char *chrom, struct bigBedInterval *bb, unsigned chromSize, char **seq, char **cds) +struct psl *pslFromBigPsl( char *chrom, struct bigBedInterval *bb, char **seq, char **cds) /* build a psl from a bigPsl */ { char *extra = cloneString(bb->rest); int numCols = 12 + 12 - 3; char *row[numCols]; int wordCount = chopByChar(extra, '\t', row, numCols); assert(wordCount == numCols); struct psl *psl; int ii; int sizeOne; AllocVar(psl); psl->qName = cloneString(row[0]); psl->strand[0] = *row[2]; if ((cds != NULL) && row[15] != NULL) *cds = cloneString(row[15]); if ((seq != NULL) && row[14] != NULL) *seq = cloneString(row[14]); +psl->tSize = sqlUnsigned(row[16]); psl->match = sqlUnsigned(row[17]); psl->misMatch = sqlUnsigned(row[18]); psl->repMatch = sqlUnsigned(row[19]); psl->nCount = sqlUnsigned(row[20]); psl->tName = chrom; psl->tStart = bb->start; psl->tEnd = bb->end; -psl->tSize = chromSize; psl->blockCount = sqlSigned(row[6]); sqlUnsignedDynamicArray(row[7], &psl->blockSizes, &sizeOne); assert(sizeOne == psl->blockCount); sqlUnsignedDynamicArray(row[8], &psl->tStarts, &sizeOne); assert(sizeOne == psl->blockCount); psl->qStart = sqlSigned(row[9]); psl->qEnd = sqlSigned(row[10]); psl->strand[1] = *row[11]; -psl->strand[1] = 0; +psl->strand[2] = 0; psl->qSize = sqlSigned(row[12]); sqlUnsignedDynamicArray(row[13], &psl->qStarts, &sizeOne); assert(sizeOne == psl->blockCount); for(ii=0; ii < psl->blockCount; ii++) { psl->tStarts[ii] += psl->tStart; -// psl->qStarts[ii] += psl->qStart; } pslComputeInsertCounts(psl); return psl; }