93d78cb9877d1b22ce6167fc1c0a18d27ca55c85
angie
  Tue Jan 9 13:38:10 2018 -0800
hAnnoStreamerFromTrackDb was erring out if it didn't recognize a bigData track type for an assembly hub -- but even for assembly hubs, custom tracks are still sql-based, so let custom tracks past that check. refs #20798

diff --git src/hg/lib/hAnno.c src/hg/lib/hAnno.c
index 4a167b6..55fac63 100644
--- src/hg/lib/hAnno.c
+++ src/hg/lib/hAnno.c
@@ -257,31 +257,31 @@
     {
     char *fileOrUrl = getBigDataFileName(dataDb, tdb, selTable, chrom);
     if (startsWithWord("bigWig", tdb->type))
         streamer = annoStreamBigWigNew(fileOrUrl, assembly); //#*** no maxOutRows support
     else
         streamer = annoStreamBigBedNew(fileOrUrl, assembly, maxOutRows);
     }
 else if (sameString("factorSource", tdb->type) &&
          dbTableMatchesAutoSql(dataDb, tdb->table, factorSourceAsObj()))
     {
     char *sourceTable = trackDbSetting(tdb, "sourceTable");
     char *inputsTable = trackDbSetting(tdb, "inputTrackTable");
     streamer = annoStreamDbFactorSourceNew(dataDb, tdb->track, sourceTable, inputsTable, assembly,
 					   maxOutRows);
     }
-else if (trackHubDatabase(db))
+else if (trackHubDatabase(db) && !isCustomTrack(selTable))
     errAbort("Unrecognized type '%s' for hub track '%s'", tdb->type, tdb->track);
 if (streamer == NULL)
     {
     streamer = annoStreamDbNew(dataDb, dbTable, assembly, maxOutRows, config);
     }
 return streamer;
 }
 
 struct annoGrator *hAnnoGratorFromBigFileUrl(char *fileOrUrl, char *indexUrl, struct annoAssembly *assembly,
                                              int maxOutRows, enum annoGratorOverlap overlapRule)
 /* Determine what kind of big data file/url we have and make streamer & grator for it. */
 {
 struct annoStreamer *streamer = NULL;
 struct annoGrator *grator = NULL;
 char *type = customTrackTypeFromBigFile(fileOrUrl);