7ac9dba0abbb050561bb41ea08d98fa76a27d4cb max Thu Feb 13 03:03:31 2025 -0800 improvements to data schema page to make it easier for users to convert and download big data, refs #35223 diff --git src/hg/hgTables/hgTables.c src/hg/hgTables/hgTables.c index 15b2ec1954e..07605b0bd20 100644 --- src/hg/hgTables/hgTables.c +++ src/hg/hgTables/hgTables.c @@ -238,56 +238,56 @@ /* print a link to the file, so the user can download it right here */ { if (fileName==NULL) return; boolean disableGenome = (tdb && cartTrackDbIsNoGenome(database, tdb->table)); if (disableGenome) printNoGenomeWarning(tdb); else { char *downPrefix = ""; if (startsWith("/gbdb", fileName)) downPrefix = "https://hgdownload.soe.ucsc.edu"; - hPrintf("<B>%s File Download:</B> <A HREF='%s%s'>%s</A>", typeLabel, downPrefix, fileName, fileName); + hPrintf("<B>%s File Download:</B> <A HREF='%s%s'>%s%s</A>", typeLabel, downPrefix, fileName, downPrefix, fileName); } } boolean printTypeHelpDesc(char *type) /* print a little link to our help docs given a track type. Return true if file type is a big* file format. */ { boolean isBig = FALSE; if (startsWith("vcf", type)) { hPrintf("See the <A HREF=\"%s\" target=_blank>Variant Call Format specification</A> for more details<BR>\n", "http://www.1000genomes.org/wiki/analysis/vcf4.0"); } else if (startsWithWord("bigWig", type)) { printf("<BR>The data is stored in the binary " "<A HREF=\"/goldenPath/help/bigWig.html\" TARGET=_BLANK>" - "BigWig</A> format.\n"); + "BigWig</A> format. Our tools <tt>bigWigToBedGraph</tt> or <tt>bigWigToWig</tt> accept a file or the URL above and output text.\n"); isBig = TRUE; } else if (startsWith("big", type)) { printf("<BR>The data is stored in the binary " "<A HREF=\"/goldenPath/help/bigBed.html\" TARGET=_BLANK>" - "BigBed</A> format.<BR>\n"); + "BigBed</A> format. Our tool <tt>bigBedToBed</tt> accepts a file or the URL above as the input and outputs text.<BR>\n"); isBig = TRUE; } return isBig; } void textOpen() /* Start up page in text format. (No need to close this). * In case of pipeline output to a compressor, it is closed * at main() exit. */ { // hgBotDelay function is now in earlyBotCheck() at the start of main(), and in // this case, the issueBotWarning flag is ignored to avoid any output here