49f31ee05d781083f1a9b7fcff2e99b974622c41 braney Tue Feb 4 09:06:51 2025 -0800 add custom tracks diff --git src/hg/hgTracks/bedTrack.c src/hg/hgTracks/bedTrack.c index 5fa6411c17c..3f022f2ea5d 100644 --- src/hg/hgTracks/bedTrack.c +++ src/hg/hgTracks/bedTrack.c @@ -134,34 +134,42 @@ if (filtered) labelTrackAsFilteredNumber(tg, filtered); lmCleanup(&lm); } else { char *table = tg->table; struct customTrack *ct = tg->customPt; struct sqlConnection *conn = NULL; char *liftDb = cloneString(trackDbSetting(tg->tdb, "quickLiftDb")); char *scoreFilterClause = getScoreFilterClause(cart, tg->tdb,NULL); if (liftDb != NULL) { + char *table; + if (isCustomTrack(tg->table)) + { + liftDb = CUSTOM_TRASH; + table = trackDbSetting(tg->tdb, "dbTableName"); + } + else + table = tg->table; struct hash *chainHash = newHash(8); struct sqlConnection *conn = hAllocConn(liftDb); char *quickLiftFile = cloneString(trackDbSetting(tg->tdb, "quickLiftUrl")); - bed = (struct bed *)quickLiftSql(conn, quickLiftFile, &tg->table[4], chromName, winStart, winEnd, NULL, scoreFilterClause, (ItemLoader)loader, chainHash); + bed = (struct bed *)quickLiftSql(conn, quickLiftFile, table, chromName, winStart, winEnd, NULL, scoreFilterClause, (ItemLoader)loader, chainHash); list = quickLiftBeds(bed, chainHash, FALSE); hFreeConn(&conn); } else { if (ct == NULL) conn = hAllocConnTrack(database, tg->tdb); else { conn = hAllocConn(CUSTOM_TRASH); table = ct->dbTableName; } struct sqlResult *sr = NULL; /* limit to items above a specified score */ @@ -561,34 +569,42 @@ adjustBedScoreGrayLevel(tdb, bed, scoreMin, scoreMax); lf = lfFromBedExtra(bed, scoreMin, scoreMax); if (useItemRgb) { lf->useItemRgb = TRUE; lf->filterColor=bed->itemRgb; } slAddHead(&lfList, lf); bedFree(&bed); } sqlFreeResult(&sr); hFreeConn(&conn); } else { + char *table; + if (isCustomTrack(tg->table)) + { + liftDb = CUSTOM_TRASH; + table = trackDbSetting(tg->tdb, "dbTableName"); + } + else + table = tg->table; struct hash *chainHash = newHash(8); struct sqlConnection *conn = hAllocConn(liftDb); char *quickLiftFile = cloneString(trackDbSetting(tg->tdb, "quickLiftUrl")); - bed = (struct bed *)quickLiftSql(conn, quickLiftFile, &tg->table[4], chromName, winStart, winEnd, NULL, scoreFilterClause, (ItemLoader)bedLoad12, chainHash); + bed = (struct bed *)quickLiftSql(conn, quickLiftFile, table, chromName, winStart, winEnd, NULL, scoreFilterClause, (ItemLoader)bedLoad12, chainHash); struct bed *liftedBeds = quickLiftBeds(bed, chainHash, TRUE); for(bed = liftedBeds; bed; bed = bed->next) { lf = lfFromBedExtra(bed, scoreMin, scoreMax); if (useItemRgb) { lf->useItemRgb = TRUE; lf->filterColor=bed->itemRgb; } slAddHead(&lfList, lf); } hFreeConn(&conn); } }