34b850ae144d1c2156abe6ec230c2d2ae992cf6f braney Thu Aug 6 15:51:57 2015 -0700 more polish for bigPsl support. hgc alignments work now #14241 diff --git src/hg/lib/bigPsl.c src/hg/lib/bigPsl.c index 5d01be7..bf99660 100644 --- src/hg/lib/bigPsl.c +++ src/hg/lib/bigPsl.c @@ -278,59 +278,60 @@ 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) /* build a psl from a bigPsl */ { char *extra = cloneString(bb->rest); -int numCols = 12 + 11 - 3; +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]); - if (*psl->strand == '-') - reverseComplement(*seq, strlen(*seq)); - } +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->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; } return psl; }