71a711119b542dd676e957d6d92b2b023a895492
braney
  Tue Jun 24 17:53:38 2025 -0700
add support for bigMethyl

diff --git src/hg/hgTracks/simpleTracks.c src/hg/hgTracks/simpleTracks.c
index d275657ec0f..01640f091d7 100644
--- src/hg/hgTracks/simpleTracks.c
+++ src/hg/hgTracks/simpleTracks.c
@@ -14796,30 +14796,44 @@
 // end stuff copied from hgTracks.c
 enum trackVisibility trackVis = track->tdb->visibility;
 if (s != NULL)
     trackVis = hTvFromString(s);
 if (trackVis != tvHide)
     {
     track->visibility = tvDense;
     track->limitedVis = tvDense;
     track->limitedVisSet = TRUE;
     }
 track->nextItemButtonable = track->nextExonButtonable = FALSE;
 track->nextPrevItem = NULL;
 track->nextPrevExon = NULL;
 }
 
+static void bigMethylLoadItems(struct track *tg)
+/* get items from bigBed in bedMethyl format */
+{
+loadSimpleBedWithLoader(tg, (bedItemLoader)bedMethylLoad);
+}
+
+static void bigMethylMethods(struct track *track)
+/* methods for bigBed in bedMethyl format */
+{
+track->isBigBed = TRUE;
+bedMethylMethods(track);
+track->loadItems = bigMethylLoadItems;
+}
+
 void fillInFromType(struct track *track, struct trackDb *tdb)
 /* Fill in various function pointers in track from type field of tdb. */
 {
 char *typeLine = tdb->type, *words[8], *type;
 int wordCount;
 if (typeLine == NULL)
     return;
 wordCount = chopLine(cloneString(typeLine), words);
 if (wordCount <= 0)
     return;
 type = words[0];
 
 track->drawItemLabel = genericDrawItemLabel;
 track->doItemMapAndArrows = genericItemMapAndArrows;
 
@@ -14905,30 +14919,35 @@
     track->isBigBed = TRUE;
     bigBaseViewMethods(track, tdb, wordCount, words);
     }
 else if (sameWord(type, "bigLolly"))
     {
     tdb->canPack = TRUE;
     track->isBigBed = TRUE;
     track->mapsSelf = TRUE;
     lollyMethods(track, tdb, wordCount, words);
     }
 else if (sameWord(type, "bigInteract"))
     {
     track->isBigBed = TRUE;
     interactMethods(track);
     }
+else if (sameWord(type, "bigMethyl"))
+    {
+    bigMethylMethods(track);
+    tdb->canPack = TRUE;
+    }
 else if (sameWord(type, "bigNarrowPeak"))
     {
     tdb->canPack = TRUE;
     track->isBigBed = TRUE;
     encodePeakMethods(track);
     track->loadItems = bigNarrowPeakLoadItems;
     }
 else if (sameWord(type, "bigPsl"))
     {
     tdb->canPack = TRUE;
     wordCount++;
     words[1] = "12";
     commonBigBedMethods(track, tdb, wordCount, words);
     }
 else if (sameWord(type, "bigChain"))
@@ -15840,30 +15859,32 @@
 registerTrackHandler("encodeErgeTransTransf",encodeErgeMethods);
 registerTrackHandlerOnFamily("encodeStanfordNRSF",encodeStanfordNRSFMethods);
 registerTrackHandler("cghNci60", cghNci60Methods);
 registerTrackHandler("rosetta", rosettaMethods);
 registerTrackHandler("affy", affyMethods);
 registerTrackHandler("ancientR", ancientRMethods );
 registerTrackHandler("altGraphX", altGraphXMethods );
 registerTrackHandler("triangle", triangleMethods );
 registerTrackHandler("triangleSelf", triangleMethods );
 registerTrackHandler("transfacHit", triangleMethods );
 registerTrackHandler("esRegGeneToMotif", eranModuleMethods );
 registerTrackHandler("leptin", mafMethods );
 registerTrackHandler("igtc", igtcMethods );
 registerTrackHandler("cactusBed", cactusBedMethods );
 registerTrackHandler("variome", variomeMethods);
+registerTrackHandler("bedMethyl", bedMethylMethods);
+registerTrackHandler("bigMethyl", bigMethylMethods);
 /* Lowe lab related */
 #ifdef LOWELAB
 registerTrackHandler("refSeq", archaeaGeneMethods);
 registerTrackHandler("gbProtCode", gbGeneMethods);
 registerTrackHandler("tigrCmrORFs", tigrGeneMethods);
 registerTrackHandler("BlastPEuk",llBlastPMethods);
 registerTrackHandler("BlastPBac",llBlastPMethods);
 registerTrackHandler("BlastPpyrFur2",llBlastPMethods);
 registerTrackHandler("codeBlast",codeBlastMethods);
 registerTrackHandler("tigrOperons",tigrOperonMethods);
 registerTrackHandler("rabbitScore",valAlMethods);
 registerTrackHandler("armadilloScore",valAlMethods);
 registerTrackHandler("rnaGenes",rnaGenesMethods);
 registerTrackHandler("sargassoSea",sargassoSeaMethods);
 registerTrackHandler("llaPfuPrintC2", loweExpRatioMethods);