a733eb4377d20aad86d9e1b3657b00da2f9028fe
braney
  Sat Jan 17 10:42:42 2026 -0800
when quicklifting a genePred we need to reverse the exon frames if the
strand changed

diff --git src/hg/lib/liftOver.c src/hg/lib/liftOver.c
index 904b64dd204..8b7eafc1b84 100644
--- src/hg/lib/liftOver.c
+++ src/hg/lib/liftOver.c
@@ -1706,30 +1706,31 @@
             genePredTabOut(gp, unmapped);
             }
 	}
    else
 	{
         int exonCount = gp->exonCount;
         struct bed *bedList = bed;
         for (;  bed != NULL;  bed = bed->next)
             {
             if (bed->blockCount > exonCount)
                 errAbort("program error: need to allocate extra blocks for bed.");
             freeMem(gp->chrom);
             gp->chrom = cloneString(bed->chrom);
             int start = gp->txStart = bed->chromStart;
             gp->txEnd = bed->chromEnd;
+            gp->origStrand = gp->strand[0];
             gp->strand[0] = bed->strand[0];
             gp->cdsStart = bed->thickStart;
             gp->cdsEnd = bed->thickEnd;
             int count = gp->exonCount = bed->blockCount;
             int i;
             for (i=0; i<count; ++i)
                 {
                 int s = start + bed->chromStarts[i];
                 int e = s + bed->blockSizes[i];
                 gp->exonStarts[i] = s;
                 gp->exonEnds[i] = e;
                 }
             if (mapped)
                 genePredTabOut(gp, mapped);
 	    }