0114df80d5034a730eeb50f04fca0afe73af3dce angie Tue Dec 5 13:51:41 2023 -0800 When db is really a db/hub, use it as db not just refName. diff --git src/hg/hgPhyloPlace/phyloPlaceMain.c src/hg/hgPhyloPlace/phyloPlaceMain.c index bcbbc19..95acda9 100644 --- src/hg/hgPhyloPlace/phyloPlaceMain.c +++ src/hg/hgPhyloPlace/phyloPlaceMain.c @@ -1,21 +1,22 @@ /* phyloPlace: place SARS-CoV-2 sequences in phylogenetic tree using add_missing_samples program. */ /* Copyright (C) 2020-2022 The Regents of the University of California */ #include "common.h" #include "cart.h" +#include "hdb.h" #include "knetUdc.h" #include "linefile.h" #include "options.h" #include "trackHub.h" #include "hubConnect.h" #include "phyloPlace.h" void usage() /* Explain usage and exit. */ { errAbort( "phyloPlace - Place SARS-CoV-2 sequences in phylogenetic tree using add_missing_samples program\n" "usage:\n" " phyloPlace file.[fa|vcf]\n" "options:\n" @@ -41,30 +42,36 @@ optionInit(&argc, argv, options); if (argc != 2) usage(); char *userSeqOrVcf = argv[1]; struct lineFile *lf = lineFileOpen(userSeqOrVcf, TRUE); char *db = optionVal("db", "wuhCor1"); char *protobuf = optionVal("protobuf", NULL); int subtreeSize = optionInt("subtreeSize", 50); boolean success = FALSE; int timeout = 300; if (udcCacheTimeout() < timeout) udcSetCacheTimeout(timeout); knetUdcInstall(); +char *realDb = NULL; if (isHubTrack(db)) { + realDb = db; // Connect to hubs so phyloPlaceSamples doesn't croak later. struct cart *cart = cartOfNothing(); struct slName *supportedDbs = phyloPlaceDbList(cart); if (! slNameInList(supportedDbs, db)) errAbort("Can't find db '%s'", db); } -char *ctFile = phyloPlaceSamples(lf, "hg38", db, protobuf, TRUE, subtreeSize, 9, &success); +else if (hDbExists(db)) + realDb = db; +else + realDb = "hg38"; +char *ctFile = phyloPlaceSamples(lf, realDb, db, protobuf, TRUE, subtreeSize, 9, &success); if (ctFile) printf("ctFile = %s\n", ctFile); else printf("no ctFile.\n"); return (success == TRUE); }