ad6fa1b977d0deef14f128a3d6f9d14b4b026e3d
max
  Wed Nov 22 07:19:50 2023 -0800
improving DAS help message, no redmine

diff --git src/hg/das/das.c src/hg/das/das.c
index cea00ae..80722cd 100644
--- src/hg/das/das.c
+++ src/hg/das/das.c
@@ -110,34 +110,43 @@
 }
 
 static void dasAbout()
 /* Print a little info when they just hit cgi-bin/das. */
 {
 dasHead(DAS_OK, TRUE);
 dasHelp("UCSC DAS Server.\n"
     "See http://www.biodas.org for more info on DAS.\n"
     "Try http://genome.ucsc.edu/cgi-bin/das/dsn for a list of databases.\n"
     "See our DAS FAQ (http://genome.ucsc.edu/FAQ/FAQdownloads#download23)\n"
     "for more information.  Alternatively, we also provide query capability\n"
     "through our MySQL server; please see our FAQ for details\n"
     "(http://genome.ucsc.edu/FAQ/FAQdownloads#download29).\n\n"
     "Note that DAS is an inefficient protocol which does not support\n"
     "all types of annotation in our database.  We recommend you\n"
-    "access the UCSC database by downloading the tab-separated files in\n"
+    "1) use our API at https://api.genome.ucsc.edu/\n"
+    "2) access the UCSC database by downloading the tab-separated files in\n"
     "the downloads section (http://hgdownload.soe.ucsc.edu/downloads.html)\n"
-    "or by using the Table Browser (http://genome.ucsc.edu/cgi-bin/hgTables)\n"
-    "instead of DAS in most circumstances.");
+    "3) use the Table Browser (http://genome.ucsc.edu/cgi-bin/hgTables)\n"
+    "instead of DAS in most circumstances.\n"
+    "4) alternatively, use our command line tools. They can all load data directly from a URL,\n"
+    "e.g. \n"
+    "  wget https://hgdownload.cse.ucsc.edu/admin/exe/linux.x86_64/twoBitToFa\n"
+    "  chmod a+x twoBitToFa\n"
+    "  twoBitToFa https://hgdownload.soe.ucsc.edu/goldenPath/hg38/bigZips/latest/hg38.2bit -bed=test.bed out.fa\n"
+    "See also the 'Data Access' section of any genome browser track with details on how to\n"
+    "access the annotation data using our tools or contact us by email so we can suggest the fastest way forward..\n"
+    );
 exit(0);
 }
 
 static void normalHeader()
 /* Write normal (non-error) header. */
 {
 dasHeader(DAS_OK);
 }
 
 static void earlyError(int errCode)
 /* Return error in early processing (before writing header) */
 {
 dasHeader(errCode);
 }
 
@@ -1085,30 +1094,26 @@
 	    "Try das/database/types for a list of available annotations.\n");
     }
 dispatch(parts[0], parts[1]);
 }
 
 int main(int argc, char *argv[])
 /* Process command line. */
 {
 char *path = getenv("PATH_INFO");
 
 cgiSpoof(&argc, argv);
 if (cgiVarExists("verbose"))
     verboseSetLevel(cgiInt("verbose"));
 if (argc == 2)
     path = argv[1];
-/* Temporary measure to shut down abusive clients */
-#if 0
-   blockHog("pix39.systemsbiology.net", "198.107.152.39");
-#endif
 
 int delay = hgBotDelayTimeFrac(0.03);
 if (delay > 2000)
     {
     char *hogHost = getenv("REMOTE_ADDR");
     sendHogMessage(hogHost);
     }
 sleep1000(delay);
 das(path);
 return 0;
 }