54406b80d5d435970989acff7b22dd6146c6b411
braney
  Sat Jan 22 15:24:59 2022 -0800
adding chrom alias support to big files

diff --git src/hg/lib/customFactory.c src/hg/lib/customFactory.c
index 9eb7104..755cb27 100644
--- src/hg/lib/customFactory.c
+++ src/hg/lib/customFactory.c
@@ -39,30 +39,31 @@
 #include "vcfUi.h"
 #include "makeItemsItem.h"
 #include "bedDetail.h"
 #include "pgSnp.h"
 #include "regexHelper.h"
 #include "chromInfo.h"
 #include "grp.h"
 #include "trackHub.h"
 #include "bedTabix.h"
 #include "barChartBed.h"
 #include "barChartUi.h"
 #include "interact.h"
 #include "interactUi.h"
 #include "hic.h"
 #include "cgiApoptosis.h"
+#include "chromAlias.h"
 
 // placeholder when custom track uploaded file name is not known
 #define CT_NO_FILE_NAME         "custom track"
 
 static boolean doExtraChecking = FALSE;
 
 /*** Utility routines used by many factories. ***/
 
 char *customFactoryNextTilTrack(struct customPp *cpp)
 /* Return next line.  Return NULL at end of input or at line starting with
  * "track." */
 {
 char *line = customPpNext(cpp);
 if (line != NULL && startsWithWord("track", line))
     {
@@ -2700,31 +2701,31 @@
 static struct customTrack *bigWigLoader(struct customFactory *fac,
 	struct hash *chromHash,
     	struct customPp *cpp, struct customTrack *track, boolean dbRequested)
 /* Load up wiggle data until get next track line. */
 {
 /* Not much to this.  A bigWig has nothing here but a track line. */
 struct hash *settings = track->tdb->settingsHash;
 char *bigDataUrl = hashFindVal(settings, "bigDataUrl");
 requireBigDataUrl(bigDataUrl, fac->name, track->tdb->shortLabel);
 checkAllowedBigDataUrlProtocols(bigDataUrl);
 
 /* protect against temporary network error */
 struct errCatch *errCatch = errCatchNew();
 if (errCatchStart(errCatch))
     {
-    track->bbiFile = bigWigFileOpen(bigDataUrl);
+    track->bbiFile = bigWigFileOpenAlias(bigDataUrl, chromAliasGetHash(NULL));
     setBbiViewLimits(track);
     }
 errCatchEnd(errCatch);
 if (errCatch->gotError)
     {
     track->networkErrMsg = cloneString(errCatch->message->string);
     }
 errCatchFree(&errCatch);
 
 return track;
 }
 
 static struct customFactory bigWigFactory =
 /* Factory for wiggle tracks */
     {
@@ -2844,31 +2845,31 @@
 static struct customTrack *bigBedLoader(struct customFactory *fac,
 	struct hash *chromHash,
     	struct customPp *cpp, struct customTrack *track, boolean dbRequested)
 /* Load up big bed data until get next track line. */
 {
 /* Not much to this.  A bigBed has nothing here but a track line. */
 struct hash *settings = track->tdb->settingsHash;
 char *bigDataUrl = hashFindVal(settings, "bigDataUrl");
 requireBigDataUrl(bigDataUrl, fac->name, track->tdb->shortLabel);
 checkAllowedBigDataUrlProtocols(bigDataUrl);
 
 /* protect against temporary network error */
 struct errCatch *errCatch = errCatchNew();
 if (errCatchStart(errCatch))
     {
-    track->bbiFile = bigBedFileOpen(bigDataUrl);
+    track->bbiFile = bigBedFileOpenAlias(bigDataUrl, chromAliasGetHash(NULL));
     }
 errCatchEnd(errCatch);
 if (errCatch->gotError)
     {
     track->networkErrMsg = cloneString(errCatch->message->string);
     return track;
     }
 errCatchFree(&errCatch);
 
 setBbiViewLimits(track);
 track->dbTrackType = cloneString("bigBed");
 track->fieldCount = track->bbiFile->definedFieldCount;
 return track;
 }