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/lib/trackHub.c src/hg/lib/trackHub.c index 2b030736a15..16b1bc56204 100644 --- src/hg/lib/trackHub.c +++ src/hg/lib/trackHub.c @@ -1881,30 +1881,31 @@ static boolean validateOneTdb(char *db, struct trackDb *tdb, struct trackDb **badList) /* Make sure the tdb is a track type we grok. badList may be NULL to validate * silently (no user-facing complaint about non-liftable types). */ { // trackDb types are matched without regard to case since that's how the rest of the // browser reads them (some trackDb stanzas say "bigbed" rather than "bigBed"). if (sameString("cytoBandIdeo", trackHubSkipHubName(tdb->track)) || !( startsWithNoCase("bigBed", tdb->type) || \ startsWithNoCase("bigWig", tdb->type) || \ startsWithNoCase("bigDbSnp", tdb->type) || \ startsWithNoCase("bigGenePred", tdb->type) || \ startsWithNoCase("gvf", tdb->type) || \ startsWithNoCase("genePred", tdb->type) || \ startsWithNoCase("narrowPeak", tdb->type) || \ + startsWithNoCase("broadPeak", tdb->type) || \ startsWithNoCase("bigLolly", tdb->type) || \ sameWord("bed", tdb->type) || startsWithNoCase("bed ", tdb->type))) { if (badList != NULL) slAddHead(badList, tdb); return FALSE; } // make sure we have a bigDataUrl if (startsWithNoCase("bigBed", tdb->type) || \ startsWithNoCase("bigWig", tdb->type)) { char *fileName = cloneString(trackDbSetting(tdb, "bigDataUrl"));