a2967835db0f5a17f28486f11a48c1a7d317bfe7 braney Wed Mar 6 10:16:46 2024 -0800 get CRAM custom tracks to work, especially on hs1 diff --git src/hg/lib/customFactory.c src/hg/lib/customFactory.c index 5449802..21246de 100644 --- src/hg/lib/customFactory.c +++ src/hg/lib/customFactory.c @@ -3054,31 +3054,31 @@ /* Factory for bigBed tracks */ { NULL, "bigBed", bigBedRecognizer, bigBedLoader, }; /*** BAM Factory - for client-side BAM alignment files ***/ static boolean bamRecognizer(struct customFactory *fac, struct customPp *cpp, char *type, struct customTrack *track) /* Return TRUE if looks like we're handling a bam track */ { -return (sameType(type, "bam")); +return (sameType(type, "bam") || sameType(type, "cram")); } static struct customTrack *bamLoader(struct customFactory *fac, struct hash *chromHash, struct customPp *cpp, struct customTrack *track, boolean dbRequested) /* Process the bam track line. */ { struct hash *settings = track->tdb->settingsHash; char *bigDataUrl = hashFindVal(settings, "bigDataUrl"); char *bigDataIndexUrl = hashFindVal(settings, "bigDataIndex"); struct dyString *dyErr = dyStringNew(0); requireBigDataUrl(bigDataUrl, fac->name, track->tdb->shortLabel); checkAllowedBigDataUrlProtocols(bigDataUrl); @@ -4249,31 +4249,31 @@ { errAbort("Expecting 'track' line, got %s\nline %d of %s", line, lf->lineIx, lf->fileName); } if (!track) continue; lazarusLives(20 * 60); // extend keep-alive time. for big uploads on slow connections. /* verify database for custom track */ char *ctDb = ctGenome(track); if (mustBeCurrentDb) { if (ctDb == NULL) ctDb = genomeDb; - else if (differentString(ctDb, genomeDb)) + else if (differentString(ctDb, trackHubSkipHubName(genomeDb))) errAbort("can't load %s data into %s custom tracks", ctDb, genomeDb); } struct customTrack *oneList = NULL, *oneTrack; if (track->dbDataLoad) /* Database tracks already mostly loaded, just check that table * still exists (they are removed when not accessed for a while). */ { if (ctConn && !ctDbTableExists(ctConn, track->dbTableName)) continue; if (!ctConn && ctConnErrMsg) track->networkErrMsg = ctConnErrMsg; if ( startsWith("maf", track->tdb->type)) {