afafa0301ea4b14fbe1fbd5aa379c5351ecd640d
angie
  Tue Aug 2 19:41:44 2022 -0700
Add support for non-wuhCor1 genomes (e.g. monkeypox GenArk hub).
* Search in hgPhyloPlaceData for config.ra files, taking assembly name (minus hub prefix) from directory name.
* Add a menu input to the main page for switching between supported genomes if there are more than one.
* Replace hardcoded values or global vars with dnaSeq attributes, assembly metadata queries or new config.ra settings.
* Separate out SARS-CoV-2-specific help text like GISAID/CNCB descriptions.
* Support metadata columns for GenBank-specific stuff & Nextstrain lineages (for MPXV).
* also a little refactoring in runUsher in preparation for supporting usher server mode: parse new placement info file so we don't have to parse that data form usher stderr output.

TODO: update Nextstrain/Auspice JSON output to use appropriate metadata columns and support monkeypox genes.

diff --git src/hg/inc/trackHub.h src/hg/inc/trackHub.h
index 674fac6..48ea950 100644
--- src/hg/inc/trackHub.h
+++ src/hg/inc/trackHub.h
@@ -191,30 +191,33 @@
 
 struct hgPositions;
 void trackHubFindPos(struct cart *cart, char *db, char *term, struct hgPositions *hgp);
 /* Look for term in track hubs.  Update hgp if found */
 
 void trackHubAddDescription(char *trackDbFile, struct trackDb *tdb);
 /* Fetch tdb->track's html description (or nearest ancestor's non-empty description)
  * and store in tdb->html. */
 
 void trackHubAddOneDescription(char *trackDbFile, struct trackDb *tdb);
 /* Fetch tdb->track's html description and store in tdb->html. */
 
 struct trackHubGenome *trackHubGetGenome(char *database);
 /* get genome structure for an assembly in a trackHub */
 
+struct trackHubGenome *trackHubGetGenomeUndecorated(char *database);
+/* Get the genome structure for an undecorated genome name. */
+
 boolean trackHubGetBlatParams(char *database, boolean isTrans, char **pHost,
     char **pPort, char **pGenomeDataDir);
 /* get "blat" and "transBlat" entries (if any) for an assembly hub */
 
 struct dbDb *trackHubGetBlatDbDbs();
 /* Get a list of connected track hubs that have blat servers */
 
 struct slPair *trackHubDbDbToValueLabel(struct dbDb *hubDbDbList);
 /* Given a trackHub (list of) track hub dbDb which may be missing some info,
  * return an slPair of value and label suitable for making a select/menu option. */
 
 void hubCheckBigDataUrl(struct trackHub *hub, struct trackHubGenome *genome,
     struct trackDb *tdb);
 /* Check remote file exists and is of correct type. Wrap this in error catcher */