50134b292a47af4ae93e22cc4f7d290c0a46262e braney Fri Jul 29 11:28:29 2022 -0700 rewrite utility to take dbDb to assembly hubAndGenomes. diff --git src/hg/makeDb/dbDbToHubTxt/dbDbToHubTxt.c src/hg/makeDb/dbDbToHubTxt/dbDbToHubTxt.c new file mode 100644 index 0000000..dc2f6b8 --- /dev/null +++ src/hg/makeDb/dbDbToHubTxt/dbDbToHubTxt.c @@ -0,0 +1,92 @@ +/* dbDbToHubTxt - Reformat dbDb line to hub and genome stanzas for assembly hubs. */ +#include "common.h" +#include "linefile.h" +#include "hash.h" +#include "options.h" +#include "hdb.h" +#include "dbDb.h" +#include "blatServers.h" + +void usage() +/* Explain usage and exit. */ +{ +errAbort( + "dbDbToHubTxt - Reformat dbDb line to hub and genome stanzas for assembly hubs\n" + "usage:\n" + " dbDbToHubTxt database email groups hubAndGenome.txt\n" + "options:\n" + " -xxx=XXX\n" + ); +} + +/* Command line validation table. */ +static struct optionSpec options[] = { + {NULL, 0}, +}; + +void dbDbToHubTxt(char *db, char *email, char *groups, char *outFile) +/* dbDbToHubTxt - Reformat dbDb line to hub and genome stanzas for assembly hubs. */ +{ +struct dbDb *dbDb = hDbDb(db); +if (dbDb == NULL) + errAbort("No dbDb entry for %s\n", db); + +FILE *f = mustOpen(outFile, "w"); + +fprintf(f, "hub %s genome assembly\n", db); +fprintf(f, "shortLabel %s\n", dbDb->description); +fprintf(f, "longLabel %s\n", dbDb->sourceName); +fprintf(f, "email %s\n", email); +fprintf(f, "desriptionUrl %s\n", dbDb->htmlPath); +fprintf(f, "useOneFile on\n"); +fprintf(f, "\n"); + +fprintf(f, "genome %s\n", db); +fprintf(f, "taxId %d\n", dbDb->taxId); +fprintf(f, "groups %s\n", groups); +fprintf(f, "description %s\n", dbDb->description); +fprintf(f, "twoBitPath /gbdb/%s/%s.2bit\n", db, db); +fprintf(f, "chromAliasBb /gbdb/%s/hubs/chromAlias.bb\n", db); +fprintf(f, "chromSizes /gbdb/%s/hubs/chromSizes.txt\n", db); +fprintf(f, "organism %s\n", dbDb->organism); +fprintf(f, "defaultPos %s\n", dbDb->defaultPos); +fprintf(f, "scientificName %s\n", dbDb->scientificName); +fprintf(f, "htmlPath %s\n", dbDb->htmlPath); + +//struct blatServerTable *blat = hFindBlatServer(char *db, boolean isTrans) +struct blatServerTable *blat = hFindBlatServer(db, FALSE); + +if (blat) + { + if (blat->isDynamic) + fprintf(f, "blat %s %s dynamic %s\n", blat->host, blat->port, db); + else + fprintf(f, "blat %s %s\n", blat->host, blat->port); + if (hgPcrOk(db)) + fprintf(f, "isPcr %s %s dynamic %s\n", blat->host, blat->port, db); + + } + +// now get transblat +blat = hFindBlatServer(db, TRUE); + +if (blat) + { + if (blat->isDynamic) + fprintf(f, "transBlat %s %s dynamic %s\n", blat->host, blat->port, db); + else + fprintf(f, "transBlat %s %s\n", blat->host, blat->port); + } + +fprintf(f, "\n"); +} + +int main(int argc, char *argv[]) +/* Process command line. */ +{ +optionInit(&argc, argv, options); +if (argc != 5) + usage(); +dbDbToHubTxt(argv[1], argv[2], argv[3], argv[4]); +return 0; +}