0daab9c07e1fb7b75223d61b0faa52e34d94302e
braney
  Fri May 8 10:31:34 2026 -0700
Block hgTables output for QuickLift tracks and hide QuickLift groups, refs #37519

QuickLift remaps tracks from another assembly on the fly for display,
but the underlying bigBed data is in the source assembly's coordinates,
so output queries against the destination assembly's region return no
results (or, with a whole-genome query, dump source-assembly data with
source coordinates).  Detect quickLiftUrl on the selected track and
errAbort from doTopSubmit and doSummaryStats with a clear message.
Also filter groups whose label starts with "QuickLift" out of the
Group dropdown in hgTables, and clear the cart's group var if it was
pointing at a QuickLift group.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

diff --git src/hg/hgTables/sumStats.c src/hg/hgTables/sumStats.c
index 9720271d52f..08c6e804e3f 100644
--- src/hg/hgTables/sumStats.c
+++ src/hg/hgTables/sumStats.c
@@ -363,26 +363,27 @@
 numberStatRow("bases in gaps", gapTotal);
 floatStatRow("load time", 0.001*loadTime);
 floatStatRow("calculation time", 0.001*calcTime);
 floatStatRow("free memory time", 0.001*freeTime);
 stringStatRow("filter", (anyFilter() ? "on" : "off"));
 stringStatRow("intersection", (anyIntersection() ? "on" : "off"));
 hTableEnd();
 covStatsFreeList(&itemCovList);
 covStatsFreeList(&blockCovList);
 htmlClose();
 }
 
 void doSummaryStats(struct sqlConnection *conn)
 /* Put up page showing summary stats for track. */
 {
+checkNoQuickLift(curTrack);
 if (isWiggle(database, curTable))
     doSummaryStatsWiggle(conn);
 else if (isBigWigTable(curTable))
     doSummaryStatsBigWig(conn);
 else if (isChromGraph(findTdbForTable(database, curTrack, curTable, ctLookupName)))
     doSummaryStatsChromGraph(conn);
 else if (sameWord(curTable,WIKI_TRACK_TABLE))
     doSummaryStatsWikiTrack(conn);
 else
     doSummaryStatsBed(conn);
 }