d26f11fb046f1b9db6d3f39eaf1a60003f8d8f1e braney Tue Dec 16 17:26:03 2014 -0800 blat support on assembly hubs diff --git src/hg/lib/trackHub.c src/hg/lib/trackHub.c index ff7bf60..6274b24 100644 --- src/hg/lib/trackHub.c +++ src/hg/lib/trackHub.c @@ -170,61 +170,76 @@ struct slPair *clade, *cladeList = NULL; struct trackHub *trackHub = globalAssemblyHubList; for(;trackHub; trackHub = trackHub->next) { AllocVar(clade); slAddHead(&cladeList, clade); clade->name = cloneString(trackHub->name); clade->val = cloneString(trackHub->shortLabel); } return cladeList; } -struct dbDb *trackHubGetDbDbs(char *clade) -/* Get a list of dbDb structures for all the tracks in this clade/hub. */ +static struct dbDb *getDbDbs(char *clade, boolean blatEnabled) +/* Get a list of struct dbDbs from track hubs. Only get blat enabled ones if asked */ { struct dbDb *db, *dbList = NULL; if (globalAssemblyHubList != NULL) { struct trackHub *trackHub = globalAssemblyHubList; for(;trackHub; trackHub = trackHub->next) { if ((clade != NULL) && differentString(clade, trackHub->name)) continue; struct trackHubGenome *hubGenome = trackHub->genomeList; for(; hubGenome; hubGenome = hubGenome->next) { - if (hubGenome->twoBitPath != NULL) + boolean blatCheck = !blatEnabled || + ((hashFindVal(hubGenome->settingsHash,"transBlat") != NULL) || + (hashFindVal(hubGenome->settingsHash,"blat") != NULL)); + if ( blatCheck && (hubGenome->twoBitPath != NULL)) { db = makeDbDbFromAssemblyGenome(hubGenome); slAddHead(&dbList, db); } } } } slReverse(&dbList); slSort(&dbList, hDbDbCmpOrderKey); return dbList; } +struct dbDb *trackHubGetBlatDbDbs() +/* Get a list of connected track hubs that have blat servers */ +{ +return getDbDbs(NULL, TRUE); +} + +struct dbDb *trackHubGetDbDbs(char *clade) +/* Get a list of dbDb structures for all the tracks in this clade/hub. */ +{ +return getDbDbs(clade, FALSE); +} + struct slName *trackHubAllChromNames(char *database) /* Return a list of all the chrom names in this assembly hub database. */ /* Free with slFreeList. */ { struct trackHubGenome *genome = trackHubGetGenome(database); if (genome == NULL) return NULL; struct slName *chromList = twoBitSeqNames(genome->twoBitPath); return chromList; } int trackHubChromCount(char *database) /* Return number of chromosomes in a assembly data hub. */