0b797de44c23e5e8acf991ea237400d37c4aa662 galt Thu Oct 24 15:28:14 2013 -0700 fixes #11991 strand output can be wrong when -multiple used with bed6 stands and it hits multiple chains. The pattern by which the output strand has been wrong is complex. Only the strand info is incorrect. The other coordinates are OK. diff --git src/hg/lib/liftOver.c src/hg/lib/liftOver.c index 8b51118..485bc7d 100644 --- src/hg/lib/liftOver.c +++ src/hg/lib/liftOver.c @@ -227,30 +227,32 @@ /* use full chain, not the possibly truncated chain * from the net */ struct chain *next = chain->next; chain = chainLoadIdRange(db, chainTableName, chrom, s, e, chain->id); chain->next = next; verbose(3,"chain from db %s:%d %s:%d-%d %c (%d)\n", chain->tName, chain->tStart, chain->qName, chain->qStart, chain->qEnd, chain->qStrand, chain->id); } } if (!mapThroughChain(chain, minRatio, &start, &end, &subChain, &toFree)) errAbort("Chain mapping error: %s:%d-%d\n", chain->qName, start, end); if (chain->qStrand == '-') strand = otherStrand(qStrand); + else + strand = qStrand; if (useThick) { struct chain *subChain2 = NULL; struct chain *toFree2 = NULL; if (!mapThroughChain(chain, minRatio, &thickStart, &thickEnd, &subChain2, &toFree2)) thickStart = thickEnd = start; chainFree(&toFree2); } verbose(3, "mapped %s:%d-%d\n", chain->qName, start, end); verbose(4, "Mapped! Target:\t%s\t%d\t%d\t%c\tQuery:\t%s\t%d\t%d\t%c\n", chain->tName, subChain->tStart, subChain->tEnd, strand, chain->qName, subChain->qStart, subChain->qEnd, chain->qStrand); if (multiple && end - start < minSizeQ) {