52a82d9b8de09cc9e7f0d02de1bcd4090cb2c5f5 braney Mon Mar 13 15:14:50 2017 -0700 fix bigPsl snakes on negative strand diff --git src/hg/hgTracks/snakeTrack.c src/hg/hgTracks/snakeTrack.c index 54cad7e..86f878b 100644 --- src/hg/hgTracks/snakeTrack.c +++ src/hg/hgTracks/snakeTrack.c @@ -1217,30 +1217,32 @@ int seqTypeField = 0; if (sameString(track->tdb->type, "bigPsl")) { seqTypeField = bbExtraFieldIndex(bbi, "seqType"); } bbiFileClose(&bbi); for (bb = bbList; bb != NULL; bb = bb->next) { char *seq, *cds; struct psl *psl = pslFromBigPsl(chromName, bb, seqTypeField, &seq, &cds); unsigned *targetStart = psl->tStarts; unsigned *queryStart = psl->qStarts; unsigned *size = psl->blockSizes; int ii; + if ((seq != NULL) && (psl->strand[0] == '-')) + reverseComplement(seq, strlen(seq)); for(ii = 0; ii < psl->blockCount; ii++) { struct hal_block_t *block; AllocVar(block); slAddHead(&head->mappedBlocks, block); block->qChrom = psl->qName; block->tStart = *targetStart++; block->qStart = *queryStart++; block->size = *size++; block->strand = psl->strand[0]; block->qSequence = &seq[block->qStart]; if (block->strand == '-') block->qStart = psl->qSize - block->qStart;