fe68a3b72e3c63ac173d41a68122cb99a2a4f578
angie
  Mon Nov 30 16:41:55 2020 -0800
David requests: point out that Nextstrain has drag-and-drop local private metadata display & link back to covid19.html landing page.

diff --git src/hg/hgPhyloPlace/hgPhyloPlace.c src/hg/hgPhyloPlace/hgPhyloPlace.c
index bbe1904..27946a9 100644
--- src/hg/hgPhyloPlace/hgPhyloPlace.c
+++ src/hg/hgPhyloPlace/hgPhyloPlace.c
@@ -162,31 +162,37 @@
        "hgPhyloPlace");
 cartSaveSession(cart);
 cgiMakeHiddenVar("db", "wuhCor1");
 puts("  <div class='gbControl col-md-12'>");
 puts("<div class='readableWidth'>");
 puts("<p>Upload your SARS-CoV-2 sequence (FASTA or VCF file) to find the most similar\n"
      "complete, high-coverage samples from \n"
      "<a href='https://www.gisaid.org/' target='_blank'>GISAID</a>\n"
      "and your sequence's placement in the phylogenetic tree generated by the\n"
      "<a href='https://github.com/roblanf/sarscov2phylo' target='_blank'>sarscov2phylo</a>\n"
      "pipeline.\n"
      "Placement is performed by\n"
      "<a href='https://github.com/yatisht/usher' target=_blank>"
      "Ultrafast Sample placement on Existing tRee (UShER)</a> "
      "(<a href='https://www.biorxiv.org/content/10.1101/2020.09.26.314971v1' target=_blank>"
-     "Turakhia <em>et al.</em></a>).</p>\n");
+     "Turakhia <em>et al.</em></a>).  UShER also generates local subtrees to show samples "
+     "in the context of the most closely related sequences.  The subtrees can be visualized "
+     "as Genome Browser custom tracks and/or using "
+     "<a href='https://nextstrain.org' target=_blank>Nextstrain</a>'s interactive display "
+     "which supports "
+     "<a href='https://docs.nextstrain.org/projects/auspice/en/latest/advanced-functionality/drag-drop-csv-tsv.html' "
+     "target=_blank>drag-and-drop</a> of local metadata that remains on your computer.</p>\n");
 puts("<p><b>Note:</b> "
      "Please do not upload any files that contain "
      "<a href='https://en.wikipedia.org/wiki/Protected_health_information#United_States' "
      "target=_blank>Protected Health Information (PHI)</a> "
      "to UCSC.</p>\n"
      "<p>We do not store your information "
      "(aside from the information necessary to display results)\n"
      "and will not share it with others unless you choose to share your Genome Browser view.</p>\n"
      "<p>In order to enable rapid progress in SARS-CoV-2 research and genomic contact tracing,\n"
      "please share your SARS-CoV-2 sequences by submitting them to an "
      "<a href='https://ncbiinsights.ncbi.nlm.nih.gov/2020/08/17/insdc-covid-data-sharing/' "
      "target=_blank>INSDC</a> member institution\n"
      "(<a href='https://submit.ncbi.nlm.nih.gov/sarscov2/' target=_blank>NCBI</a> in the U.S.,\n"
      "<a href='https://www.covid19dataportal.org/submit-data' target=_blank>EMBL-EBI</a> in Europe\n"
      "and <a href='https://www.ddbj.nig.ac.jp/ddbj/websub.html' target=_blank>DDBJ</a> in Japan)\n"
@@ -211,30 +217,42 @@
 static void exampleForm()
 /* Let the user try Russ's example. */
 {
 printf("<form action='%s' name='exampleForm' method=POST>\n\n",
        "hgPhyloPlace");
 cartSaveSession(cart);
 cgiMakeHiddenVar("db", "wuhCor1");
 puts("  <div class='gbControl col-md-12'>");
 puts("If you don't have a local file, you can try an "
      "<a href='https://github.com/russcd/USHER_DEMO/' target=_blank>example</a>: ");
 cgiMakeButton("submit", "try example");
 puts("  </div>");
 puts("</form>");
 }
 
+static void linkToLandingPage()
+/* David asked for a link back to our covid19 landing page. */
+{
+puts("<div class='gbControl col-md-12'>");
+puts("<div class='readableWidth'>");
+puts("<p></p>");
+puts("<p>\n"
+     "<a href='/covid19.html'>COVID-19 Pandemic Resources at UCSC</a></p>\n");
+puts("</div>");
+puts("</div>");
+}
+
 static void gisaidFooter()
 /* GISAID wants this on all pages that have anything to do with GISAID samples. */
 {
 puts("<div class='gbControl col-md-12'>");
 puts("<div class='readableWidth'>");
 puts("<p></p>");
 puts("<p>\n"
      "GISAID data displayed in the Genome Browser are subject to GISAID's\n"
      "<a href='https://www.gisaid.org/registration/terms-of-use/' target=_blank>"
      "Terms and Conditions</a>.\n"
      "SARS-CoV-2 genome sequences and metadata are available for download from\n"
      "<a href='https://gisaid.org' target=_blank>GISAID</a> EpiCoV&trade;.\n"
      "</p>");
 puts("</div>");
 puts("</div>");
@@ -245,30 +263,31 @@
 // Start web page with new-style header
 webStartGbNoBanner(cart, db, "UShER: Upload");
 newPageStartStuff();
 
 puts("<div class='row'>"
      "  <div class='row gbSectionBanner'>\n"
      "    <div class='col-md-11'>UShER: Ultrafast Sample placement on Existing tRee</div>\n"
      "    <div class='col-md-1'></div>\n"
      "  </div>\n"
      "</div>\n"
      "<div class='row'>\n");
 if (hgPhyloPlaceEnabled())
     {
     inputForm();
     exampleForm();
+    linkToLandingPage();
     gisaidFooter();
     }
 else
     {
     puts("  <div class='gbControl col-md-12'>");
     puts("  Sorry, this server is not configured to perform phylogenetic placement.");
     puts("  </div>");
     }
 puts("</div>\n");
 
 newPageEndStuff();
 }
 
 static void resultsPage(char *db, struct lineFile *lf)
 /* QC the user's uploaded sequence(s) or VCF; if input looks valid then run usher
@@ -317,30 +336,31 @@
         inputForm();
         }
     }
 else
     {
     warn("Unable to read your uploaded data - please choose a file and try again, or click the "
          "&quot;try example&quot; button.");
     // Let the user try again:
     puts("  </div>");
     puts("</form>");
     inputForm();
     exampleForm();
     }
 puts("</div>\n");
 
+linkToLandingPage();
 gisaidFooter();
 newPageEndStuff();
 }
 
 static void doMiddle(struct cart *theCart)
 /* Set up globals and make web page */
 {
 cart = theCart;
 char *db = NULL, *genome = NULL, *clade = NULL;
 getDbGenomeClade(cart, &db, &genome, &clade, oldVars);
 
 int timeout = cartUsualInt(cart, "udcTimeout", 300);
 if (udcCacheTimeout() < timeout)
     udcSetCacheTimeout(timeout);
 knetUdcInstall();