15973bdabacf5ddf5dd9289d05e83a7cd4080dbb braney Tue Nov 9 09:12:48 2021 -0800 support for bigRmsk from Robert Hubley robert.hubley@isbscience.org diff --git src/hg/lib/customFactory.c src/hg/lib/customFactory.c index 86e4372..8729662 100644 --- src/hg/lib/customFactory.c +++ src/hg/lib/customFactory.c @@ -2725,30 +2725,39 @@ return track; } static struct customFactory bigWigFactory = /* Factory for wiggle tracks */ { NULL, "bigWig", bigWigRecognizer, bigWigLoader, }; /*** Big Bed Factory - for big client-side BED tracks ***/ +/* RMH: Added to support track hubs for RepeatMaskerViz track */ +static boolean bigRmskRecognizer(struct customFactory *fac, + struct customPp *cpp, char *type, + struct customTrack *track) +/* Return TRUE if looks like we're handling a bigRmsk track */ +{ +return (sameType(type, "bigRmsk")); +} + static boolean bigLollyRecognizer(struct customFactory *fac, struct customPp *cpp, char *type, struct customTrack *track) /* Return TRUE if looks like we're handling a bigLolly track */ { return (sameType(type, "bigLolly")); } static boolean bigMafRecognizer(struct customFactory *fac, struct customPp *cpp, char *type, struct customTrack *track) /* Return TRUE if looks like we're handling a bigMaf track */ { return (sameType(type, "bigMaf")); } @@ -2950,30 +2959,39 @@ NULL, "bedTabix", bedTabixRecognizer, bedTabixLoader, }; static struct customFactory bigMafFactory = /* Factory for bigMaf tracks */ { NULL, "bigMaf", bigMafRecognizer, bigBedLoader, }; +static struct customFactory bigRmskFactory = +/* Factory for bigRmsk tracks */ + { + NULL, + "bigRmsk", + bigRmskRecognizer, + bigBedLoader, + }; + static struct customFactory bigLollyFactory = /* Factory for bigLolly tracks */ { NULL, "bigLolly", bigLollyRecognizer, bigBedLoader, }; static struct customFactory bigPslFactory = /* Factory for bigPsl tracks */ { NULL, "bigPsl", bigPslRecognizer, @@ -3544,30 +3562,31 @@ slAddTail(&factoryList, &bedGraphFactory); slAddTail(&factoryList, µarrayFactory); slAddTail(&factoryList, &coloredExonFactory); slAddTail(&factoryList, &encodePeakFactory); slAddTail(&factoryList, &bedDetailFactory); slAddTail(&factoryList, &adjacencyFactory); slAddTail(&factoryList, &bamFactory); slAddTail(&factoryList, &vcfTabixFactory); slAddTail(&factoryList, &makeItemsFactory); slAddTail(&factoryList, &bigDataOopsFactory); slAddTail(&factoryList, &barChartFactory); slAddTail(&factoryList, &bigBarChartFactory); slAddTail(&factoryList, &interactFactory); slAddTail(&factoryList, &bigInteractFactory); slAddTail(&factoryList, &hicFactory); + slAddTail(&factoryList, &bigRmskFactory); slAddTail(&factoryList, &bigLollyFactory); } } struct customFactory *customFactoryFind(char *genomeDb, struct customPp *cpp, char *type, struct customTrack *track) /* Figure out factory that can handle this track. The track is * loaded from the track line if any, and type is the type element * if any from that track. */ { struct customFactory *fac; customFactoryInit(); for (fac = factoryList; fac != NULL; fac = fac->next) if (fac->recognizer(fac, cpp, type, track)) break;