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,