e745ccb794a88cf79f4e63a375a3eeb93e918563
braney
  Mon Jan 26 10:15:44 2026 -0800
move code to reverse exonFrames to calcLiftOverGenePred() so it will
work with the liftOver tool

diff --git src/hg/hgTracks/simpleTracks.c src/hg/hgTracks/simpleTracks.c
index 0efe64bf5c4..9cc78375ec5 100644
--- src/hg/hgTracks/simpleTracks.c
+++ src/hg/hgTracks/simpleTracks.c
@@ -6306,42 +6306,30 @@
 extern struct genePred *genePredExtLoad15(char **row);
 
     struct genePred *gpList = (struct genePred *)quickLiftSql(conn, quickLiftFile, table, chromName, winStart, winEnd,  NULL, NULL, (ItemLoader2)genePredExtLoad15, 0, chainHash);
     hFreeConn(&conn);
 
     calcLiftOverGenePreds( gpList, chainHash, 0.0, 0.0, TRUE, NULL, NULL,  TRUE, FALSE);
     struct genePred *gp = gpList;
 
     struct linkedFeatures *lfList = NULL;
     for(;gp; gp = gp->next)
         {
         if (gp->chrom == NULL) // if the lift failed, ignore this one
             continue;
         if (positiveRangeIntersection(winStart, winEnd, gp->txStart, gp->txEnd) == 0)
             continue;
-        // we need to reverse the order of the exon frames if the quickLift changed the strand
-        if (quickLiftFile && (gp->strand[0] != gp->origStrand) && (gp->exonCount > 1))
-            {
-            int *reorderFrames;
-            AllocArray(reorderFrames, gp->exonCount);
-
-            int ii;
-            for(ii=0; ii < gp->exonCount; ii++)
-                reorderFrames[ii] = gp->exonFrames[(gp->exonCount - 1) - ii];
-
-            gp->exonFrames = reorderFrames;
-            }
         slAddHead(&lfList, linkedFeaturesFromGenePred(tg, gp, TRUE));
         }
     slReverse(&lfList);
     tg->items = lfList;
     }
 else
     {
     struct sqlConnection *conn = hAllocConn(database);
     tg->items = connectedLfFromGenePredInRangeExtra(tg, conn, tg->table,
                                             chromName, winStart, winEnd, extra);
     hFreeConn(&conn);
     }
 }
 
 struct linkedFeatures *lfFromGenePredInRange(struct track *tg, char *table,