5a34c495d5fe1db2aab6d1785c0b0239dbed2520
angie
  Sat Aug 16 21:21:02 2025 -0700
New track type lorax: details page embeds Lorax multi-tree viewer.
The trees are subtrees of an Ancestral Recombination Graph (ARG).
This commit also adds a track with 1000 Genomes data, tgpLorax.
The details page uses an iframe to embed the Lorax viewer from
a separate server (most likely will run in a docker container on
the GB server hosts; that will make this track more complicated for
mirror operators than other tracks).

diff --git src/hg/hgTracks/hgTracks.h src/hg/hgTracks/hgTracks.h
index 67e42c3a8f0..9010e48e8ef 100644
--- src/hg/hgTracks/hgTracks.h
+++ src/hg/hgTracks/hgTracks.h
@@ -1691,30 +1691,33 @@
 void interactMethods(struct track *tg);
 /* Interact track type methods */
 
 void interactCtMethods(struct track *tg);
 /* Interact track methods for custom track */
 
 void hicMethods(struct track *tg);
 /* Methods for Hi-C interaction data */
 
 void hicCtMethods(struct track *tg);
 /* Hi-C track methods for custom track */
 
 void bedMethylCtMethods(struct track *tg);
 /* bedMethyl track methods for custom track */
 
+void loraxMethods(struct track *tg);
+/* Lorax track type methods */
+
 void parentChildCartCleanup(struct track *trackList,struct cart *newCart,struct hash *oldVars);
 /* When composite/view settings changes, remove subtrack specific vis
    When superTrackChild is found and selected, shape superTrack to match. */
 
 void dontLoadItems(struct track *tg);
 /* No-op loadItems when we aren't going to try. */
 
 void filterItems(struct track *tg, boolean (*filter)(struct track *tg, void *item), 
                 char *filterType);
 /* Filter out items from track->itemList. */
 
 void filterItemsOnNames(struct track *tg);
 /* Only keep items with a name in the .nameFilter cart var. 
  * Not using filterItems(), because filterItems has no state at all. */