601d8ad878b9cd491de411fde57453f2da7608bb
braney
  Fri Jul 18 18:00:28 2025 -0700
it turns out that hOrganism and hGenome are basically the same thing but
both have to be working with Genark

diff --git src/hg/lib/hdb.c src/hg/lib/hdb.c
index 2bd047d7ff4..166b6a0e772 100644
--- src/hg/lib/hdb.c
+++ src/hg/lib/hdb.c
@@ -2630,30 +2630,32 @@
 return res;
 }
 
 char *hDefaultPos(char *database)
 /* Return default chromosome position for the
   organism associated with database.   use freeMem on
  * this when done. */
 {
 return hDbDbField(database, "defaultPos");
 }
 
 char *hOrganism(char *database)
 /* Return organism associated with database.   use freeMem on
  * this when done. */
 {
+if (database == NULL)
+    return NULL;
 if (sameString(database, "rep"))    /* bypass dbDb if repeat */
     return cloneString("Repeat");
 if (startsWith("GC", database))
     {
     struct dbDb *dbDb = genarkLiftOverDb(database);
     if (dbDb != NULL)
         return dbDb->genome;
     }
 
 return hDbDbOptionalField(database, "organism");
 }
 
 char *hDbDbNibPath(char *database)
 /* return nibPath from dbDb for database, has to be freed */
 {
@@ -2663,30 +2665,38 @@
     seqDir = hDbDbOptionalField(database, "nibPath");
 else
     {
     char buf[4096];
     safef(buf, sizeof(buf), "/gbdb/%s", database);
     char *twoBitDir = hReplaceGbdbSeqDir(buf, database);
     seqDir = twoBitDir;
     }
 return seqDir;
 }
 
 char *hGenome(char *database)
 /* Return genome associated with database.
  * use freeMem on this when done. */
 {
+if (database == NULL)
+    return NULL;
+if (startsWith("GC", database))
+    {
+    struct dbDb *dbDb = genarkLiftOverDb(database);
+    if (dbDb != NULL)
+        return dbDb->genome;
+    }
 return hDbDbOptionalField(database, "genome");
 }
 
 char *hScientificName(char *database)
 /* Return scientific name for organism represented by this database */
 /* Return NULL if unknown database */
 /* NOTE: must free returned string after use */
 {
 return hDbDbOptionalField(database, "scientificName");
 }
 
 char *hOrgShortName(char *org)
 /* Get the short name for an organism.  Returns NULL if org is NULL.
  * WARNING: static return */
 {