d3a6ae3671e186b98e76f41f4fbf4e70190c2272
max
  Tue Apr 23 07:23:38 2024 -0700
adding an info icon to the create custom tracks hgBlat button, no redmine

diff --git src/hg/hgBlat/hgBlat.c src/hg/hgBlat/hgBlat.c
index 818f494..3a127d1 100644
--- src/hg/hgBlat/hgBlat.c
+++ src/hg/hgBlat/hgBlat.c
@@ -628,31 +628,38 @@
         printf("<INPUT TYPE=\"hidden\" name=\"i\" value=\"%s %s %s\" />\n",pslName,faName,psl->qName);
         printf("<INPUT TYPE=\"hidden\" name=\"c\" value=\"%s\" />\n",psl->tName);
         printf("<INPUT TYPE=\"hidden\" name=\"l\" value=\"%d\" />\n",psl->tStart);
         printf("<INPUT TYPE=\"hidden\" name=\"r\" value=\"%d\" />\n",psl->tEnd);
         printf("<INPUT TYPE=\"hidden\" name=\"%s\" value=\"%s\" />\n",  cartSessionVarName(), cartSessionId(cart));
         if (pslIsProtein(psl))
             printf("<INPUT TYPE=\"hidden\" name=\"isProt\" value=\"on\" />\n");
 
         printf("<TABLE><TR><TD>Custom track name: ");
         cgiMakeTextVar( "trackName", trackName, 30);
         printf("</TD></TR>");
 
         printf("<TR><TD> Custom track description: ");
         cgiMakeTextVar( "trackDescription", trackDescription,50);
         printf("</TD></TR>");
-        printf("<TR><TD><INPUT TYPE=SUBMIT NAME=Submit VALUE=\"Build a custom track with these results\"></TD></TR>\n");
+        printf("<TR><TD><INPUT TYPE=SUBMIT NAME=Submit VALUE=\"Create a stable custom track with these results\">\n");
+        printInfoIcon("The BLAT results below are temporary and will be replaced by your next BLAT search. "
+                "However, when saved as a custom track with the button on the left, BLAT results are stored on our "
+                "servers and can be saved as stable session (View &gt; My Sessions) links that can be shared via email or in manuscripts. "
+                "\n<p>We have never cleaned up the data under stable session links so far. "
+                "To reduce track clutter in your own sessions, you can delete BLAT custom tracks from the main Genome Browser "
+                "view using the little trash icon next to each custom track.</p>");
+        puts("</TD></TR>");
         printf("</TABLE></FORM></DIV>");
         }
 
     printf("<DIV STYLE=\"display:block;\"><PRE>");
 
     // find maximum query name size for padding calculations and
     // find maximum target chrom name size for padding calculations
     int maxQChromNameSize = 0;
     int maxTChromNameSize = 0;
     for (psl = pslList; psl != NULL; psl = psl->next)
 	{
 	int qLen = strlen(psl->qName);
 	maxQChromNameSize = max(maxQChromNameSize,qLen);
 	int tLen = strlen(psl->tName);
 	maxTChromNameSize = max(maxTChromNameSize,tLen);
@@ -1342,31 +1349,31 @@
 if (isProt)
     {
     alphaBetSize = 20;
     genomeSize = genomeSize / 3;
     }
 else
     {
     alphaBetSize = 4;
     }
 int k = 1;
 double expected = genomeSize;
 for (k=1; k<36; k++)
     {
     expected /= alphaBetSize;
     // set this to .05 to allow 18bp searches on hg38.
-    if (expected < .004)
+    if (expected < .19)
 	break;
     }
 return k;
 }
 
 long findGenomeSize(char *database)
 // get genomeSize from database.
 {
 struct sqlConnection *conn = hAllocConn(database);
 char query[256];
 sqlSafef(query, sizeof query, "select sum(size) from chromInfo");
 long genomeSize = sqlQuickLongLong(conn, query);
 hFreeConn(&conn);
 if (genomeSize == 0)
     {