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™.\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 " ""try example" 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();