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 > 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) {