80daf93864f5609f6b7695766a78edd90cac0c1d
braney
  Fri Jul 31 12:29:05 2026 -0700
quickLift: accept broadPeak tracks, and make lifted peak details right. refs #37970

Add broadPeak to the types validateOneTdb will lift; hgTracks already knew
how to load one.  Make hgc's encodePeak handler read the table out of the
source assembly and lift the items, instead of looking in the destination
assembly where the table does not exist and coming up empty.  Lift peaks with
a new quickLiftPeaks() rather than casting them to bed and calling
quickLiftBeds(), whose thickStart and thickEnd assignments land on
signalValue and pValue in struct encodePeak.

diff --git src/hg/inc/quickLift.h src/hg/inc/quickLift.h
index bf3885d511d..b3317db9347 100644
--- src/hg/inc/quickLift.h
+++ src/hg/inc/quickLift.h
@@ -55,30 +55,35 @@
 
 struct genePred *quickLiftGenePreds(struct sqlConnection *conn, char *quickLiftFile, char *table, char *chromName, int winStart, int winEnd, char *extraWhere, struct hash *chainHash);
 /* Like quickLiftSql, but load genePreds through a genePredReader so the actual set of
  * (extended) genePred columns in the table is honored rather than assuming 15 columns.
  * Fill a hash with the chains that were used to map the desired range. */
 
 unsigned quickLiftGetChainId(struct cart *, char *fromDb, char *toDb);
 /* Return the id from the quickLiftChain table for given assemblies. */
 
 char *quickLiftGetChainPath(struct cart *, char *fromDb, char *toDb);
 /* Return the path from the quickLiftChain table for given assemblies. */
 
 struct bed *quickLiftBeds(struct bed *bedList, struct hash *chainHash, boolean blocked);
 // Map a list of bedd in query coordinates to our current reference
 
+struct encodePeak *quickLiftPeaks(struct encodePeak *peakList, struct hash *chainHash);
+// Map a list of encodePeaks in query coordinates to our current reference.  These can't go
+// through quickLiftBeds:  the thickStart and thickEnd it assigns overlay signalValue and
+// pValue in struct encodePeak.
+
 boolean quickLiftEnabled(struct cart *cart);
 /* Return TRUE if feature is available */
 
 struct quickLiftRegions *quickLiftGetRegions(char *ourDb, char *liftDb, char *quickLiftFile, char *chrom, int seqStart, int seqEnd);
 /* Figure out the highlight regions and cache them. */
 
 char *quickLiftChainTable();
 /* Return the name of the quickLiftChain table. */
 
 void quickLiftResolveTable(struct trackDb *tdb, char *trackTable, char **retTable, char **retLiftDb);
 /* Resolve the table name and liftDb for a quickLift track.  For custom tracks,
  * sets *retLiftDb to CUSTOM_TRASH and *retTable to the dbTableName setting;
  * otherwise sets *retTable to trackTable. Caller should have already set
  * *retLiftDb to trackDbSetting(tdb, "quickLiftDb"). */