9ca89f9ff4facb407acfd0a8e970472a45be29a0
hiram
  Tue Sep 22 11:48:06 2020 -0700
adding chrom.sizes as download file for hgTracks sequences in assembly hubs refs #24396

diff --git src/hg/lib/trackHub.c src/hg/lib/trackHub.c
index 1212daf..586b181 100644
--- src/hg/lib/trackHub.c
+++ src/hg/lib/trackHub.c
@@ -390,46 +390,64 @@
 		AllocVar(ali);
 		ali->alias = cloneString(words[i]);
 		ali->chrom = cloneString(words[0]);
 		ali->source = cloneString("asmHub");
 		hashAdd(aliasHash, words[0], ali);
 		}
 	    }
 	}
     }
     lineFileClose(&lf);  /* frees cannibalized ds string */
     }
 
 return aliasHash;
 }	/*	static struct hash *readAliasFile(char *url)	*/
 
-char *trackHubAliasFile(char *database)
-/* see if this assembly hub has an alias file, return url if present */
+static char *assemblyHubGenomeSetting(char *database, char *tagName)
+/* see if this assembly hub has specified tagName, return url if present
+ * returns NULL when not present
+ */
 {
 struct trackHubGenome *genome = trackHubGetGenome(database);
 if (genome == NULL)
     return NULL;
-char *aliasFile = hashFindVal(genome->settingsHash, "chromAlias");
-char *absAliasFile  = NULL;
-if (aliasFile)
-    absAliasFile  = trackHubRelativeUrl((genome->trackHub)->url, aliasFile);
-if  (absAliasFile)
+char *fileName = hashFindVal(genome->settingsHash, tagName);
+char *absFileName  = NULL;
+if (fileName)
+    absFileName  = trackHubRelativeUrl((genome->trackHub)->url, fileName);
+if  (absFileName)
     {
-    hashReplace(genome->settingsHash, "chromAlias", absAliasFile);
-    aliasFile = absAliasFile;
+    hashReplace(genome->settingsHash, tagName, absFileName);
+    fileName = absFileName;
+    }
+return fileName;
 }
-return aliasFile;
+
+char *trackHubChromSizes(char *database)
+/* see if this assembly hub has a chrom.sizes file, return url if present
+ * returns NULL when not present
+ */
+{
+return assemblyHubGenomeSetting(database, "chromSizes");
+}
+
+char *trackHubAliasFile(char *database)
+/* see if this assembly hub has an alias file, return url if present
+ * returns NULL when not present
+ */
+{
+return assemblyHubGenomeSetting(database, "chromAlias");
 }
 
 struct hash *trackHubAllChromAlias(char *database)
 /* Return a hash of chroms with alias names from alias file if present */
 {
 char *aliasFile = trackHubAliasFile(database);
 if (aliasFile == NULL)
     return NULL;
 
 return readAliasFile(aliasFile);
 }	/*	struct hash *trackHubAllChromAlias(char *database)	*/
 
 struct chromInfo *trackHubAllChromInfo(char *database)
 /* Return a chromInfo structure for all the chroms in this database. */
 {