ddb85ced5e8b6127a233b5cda5fcb1fbe2260578 max Wed Mar 25 04:22:06 2026 -0700 Add detailsScript trackDb mechanism for JS visualizations on bigBed details pages Changing based on feedback from Jonathan, Chris and Brian after group discussion. Refactored existing Claude-generated code, moving functions into libraries. This is the first use of ES6 modules in the kent js code. In 2026, this should be acceptable? New trackDb syntax: detailsScript.. The C code (bigBedClick.c) collects these settings, exports field values as JSON (bedDetails object), and dynamically imports hgc..js as an ES6 module. Fields used by detailsScript are shown in the HTML table with empty values, filled by JavaScript. Includes hgc.histogram.js module for drawing SVG bar chart histograms from logfmt-encoded data (space-separated key=value pairs). Applied to both the trexplorer and webstr tracks in the strVar supertrack. Also adds jsonWriteJsonElement() helper to jsonWrite.c for writing parsed jsonElement trees into a jsonWrite stream. max, refs #36652 Co-Authored-By: Claude Opus 4.6 (1M context) diff --git src/hg/makeDb/scripts/webstr/webstr.as src/hg/makeDb/scripts/webstr/webstr.as index 603dcd0b82f..42cc933629e 100644 --- src/hg/makeDb/scripts/webstr/webstr.as +++ src/hg/makeDb/scripts/webstr/webstr.as @@ -1,31 +1,26 @@ table webstr "WebSTR short tandem repeat loci with allele frequency data from EnsembleTR panel" ( string chrom; "Chromosome" uint chromStart; "Start position" uint chromEnd; "End position" - string name; "Repeat ID" + string name; "Repeat motif x copy count" uint score; "Score (0-1000)" char[1] strand; "Strand" uint thickStart; "Thick start (same as chromStart)" uint thickEnd; "Thick end (same as chromEnd)" uint reserved; "Item color RGB" string motif; "Repeat unit motif" uint period; "Length of repeat unit" uint numCopies; "Number of repeat copies in reference" - lstring afrAlleles; "AFR alleles (comma-separated repeat counts)" - lstring afrFreqs; "AFR allele frequencies (comma-separated)" + lstring afrHist; "AFR allele frequency histogram (space-separated allele=freq pairs)" uint afrN; "AFR sample count" - lstring amrAlleles; "AMR alleles (comma-separated repeat counts)" - lstring amrFreqs; "AMR allele frequencies (comma-separated)" + lstring amrHist; "AMR allele frequency histogram (space-separated allele=freq pairs)" uint amrN; "AMR sample count" - lstring easAlleles; "EAS alleles (comma-separated repeat counts)" - lstring easFreqs; "EAS allele frequencies (comma-separated)" + lstring easHist; "EAS allele frequency histogram (space-separated allele=freq pairs)" uint easN; "EAS sample count" - lstring eurAlleles; "EUR alleles (comma-separated repeat counts)" - lstring eurFreqs; "EUR allele frequencies (comma-separated)" + lstring eurHist; "EUR allele frequency histogram (space-separated allele=freq pairs)" uint eurN; "EUR sample count" - lstring sasAlleles; "SAS alleles (comma-separated repeat counts)" - lstring sasFreqs; "SAS allele frequencies (comma-separated)" + lstring sasHist; "SAS allele frequency histogram (space-separated allele=freq pairs)" uint sasN; "SAS sample count" )