d033cea2063e9362949baf5b4d8b837597173a0d
max
Thu Sep 10 05:16:05 2026 -0700
Address the code review of the Sep 9 commits
Faceted composite: text that comes from a hub - a metadata column's
description, the name and title of a data type, and the values quoted back in
the "could not load the metadata" row - is put on the page as text rather than
as markup. The three places built their markup from template strings, so a
value carrying angle brackets or a quote was read as HTML: the column
description now goes through the shared htmlEncode() once where the header is
parsed, and the other two build their elements as nodes. The error row reads
better for it as well, since a value with brackets in it used to disappear from
the message that was meant to show it.
The saved UI state keys on the assembly as well as the metadata id. localStorage
is per-origin, so two assemblies whose tracks share a name were sharing one
entry, and a row order dragged on one came back on the other over a different
set of samples. hgTrackUi passes the database down for it. State saved under the
old key is dropped, which costs a facet selection or a page length.
Imprinting: the five subtrack description pages link back to the container as
hgTrackUi?db=$db&g=$parentTrack, without the hgsid. Native trackDb html is
substituted by hgTrackDb as it loads the table, where there is no cart, so
${hgsid} came out empty and the link read 'hgsid=&g=...'. Matches what the
Fiber-seq pages already do. The makeDoc note that described the old form is
updated with the reason.
UniProt otto: README.txt lists all eight things that reach runLog.txt. It had
four, and was missing LOCKED, along with PREFLIGHT-FAIL, END and INTERRUPTED.
refs #36210
refs #37599
refs #38300
diff --git src/hg/makeDb/trackDb/human/hg38/geneimprint.html src/hg/makeDb/trackDb/human/hg38/geneimprint.html
index fc7a1399f79..233930d5e27 100644
--- src/hg/makeDb/trackDb/human/hg38/geneimprint.html
+++ src/hg/makeDb/trackDb/human/hg38/geneimprint.html
@@ -1,144 +1,144 @@
<h2>Description</h2>
<p>
-Part of the <a href="hgTrackUi?db=$db&hgsid=${hgsid}&g=$parentTrack">Imprinting</a> track collection, this track shows the human part of the Geneimprint
+Part of the <a href="hgTrackUi?db=$db&g=$parentTrack">Imprinting</a> track collection, this track shows the human part of the Geneimprint
catalog, with each gene placed on the genome. The catalog itself gives only a cytogenetic band, so the
coordinates here come from resolving the gene symbols against the
<a href="hgTrackUi?g=hgnc">HGNC</a> gene annotation. Note that the track
contains all of the catalog, including 18 genes that Geneimprint records as
<em>not</em> imprinted and 10 whose status is unknown. Use the filters on the
track configuration page to narrow the display to the evidence levels you want.
</p>
<h2>Display Conventions and Configuration</h2>
<p>
Each item is one gene from the catalog, drawn over the span of the resolved
locus. The item is labeled with the name Geneimprint uses, which for older
entries can differ from today's approved symbol; the configuration page can
switch the label to the approved symbol instead. Clicking an item opens a page
with the imprint status, the expressed allele, the band the catalog gives, and
links to the Geneimprint and HGNC entries.
</p>
<p>
The color shows which parental copy is expressed:
</p>
<table class="stdTbl">
<tr><th style="background-color:#0072B2;width:2em"> </th>
<td>Paternal — the copy inherited from the father is expressed,
so the maternal copy is silenced</td></tr>
<tr><th style="background-color:#D55E00;width:2em"> </th>
<td>Maternal — the copy inherited from the mother is expressed,
so the paternal copy is silenced</td></tr>
<tr><th style="background-color:#009E73;width:2em"> </th>
<td>Biallelic — both copies are expressed, the gene was tested and
is not imprinted</td></tr>
<tr><th style="background-color:#E69F00;width:2em"> </th>
<td>Isoform dependent — some transcripts of the gene are imprinted
and others are not</td></tr>
<tr><th style="background-color:#CC79A7;width:2em"> </th>
<td>Random — one copy is silenced, but which one is not decided by
the parent of origin</td></tr>
<tr><th style="background-color:#555555;width:2em"> </th>
<td>Unknown — the expressed copy has not been determined</td></tr>
</table>
<p>
Vermillion, blue and gray mean the same thing on every subtrack of this
collection; the three colors above them are used only by this catalog.
</p>
<p>
Two filters are available, one on imprint status and one on expressed allele.
Neither filters anything out by default.
</p>
<h2>Methods</h2>
<p>
Geneimprint is curated by hand from the imprinting literature and is maintained
by Randy L. Jirtle. A large share of the entries marked as predicted rather
than confirmed comes from the genome-wide machine learning screen of Luedi et
al. (2007), which scored every human gene on the sequence features that
distinguish known imprinted genes, mainly the arrangement of repeats and
transcription factor binding sites around the locus. The catalog records for
each gene the expressed parental allele and an evidence level: imprinted, not
imprinted, predicted, conflicting data, provisional data, tissue dependent or
unknown. The site does not publish a definition of these levels.
</p>
<p>
The catalog table was downloaded from
<a href="https://geneimprint.com/site/genes-by-species.Homo+sapiens" target="_blank">https://geneimprint.com/site/genes-by-species.Homo+sapiens</a>
and parsed out of the HTML page. Geneimprint gives a cytogenetic band but no
coordinates, so each gene symbol was resolved against the HGNC track, trying in
turn the approved symbol, the previous approved symbols and the alias symbols,
first for the catalog name and then for each of the aliases the catalog lists.
Only the main chromosomes were considered, so an alternate haplotype can never
win a match. Where a symbol matched more than one locus, the one whose
cytogenetic band agreed with the catalog was taken. Two cluster names,
SNORD115@ and SNORD116, do not exist as single loci and were spanned from the
first to the last numbered member of their family. One symbol that HGNC has
retired, PRR25, was resolved through RefSeq instead. The processing steps are
documented in the
<a href="https://github.com/ucscGenomeBrowser/kent/blob/master/src/hg/makeDb/doc/hg38/imprinting.txt" target="_blank">imprinting makeDoc</a>
and the script is in
<a href="https://github.com/ucscGenomeBrowser/kent/tree/master/src/hg/makeDb/scripts/imprinting" target="_blank">makeDb/scripts/imprinting</a>.
</p>
<p>
The catalog lists 281 entries and 274 of them are shown. Four could not be
placed because their gene identifiers have been retired and no longer match any
locus; one of those, PWCR1, is an older name for the SNORD116 cluster, which is
in the track under that name. Three more genes appear twice in the catalog under
an old and a current symbol, and each pair is drawn once, carrying both names.
</p>
<h2>Data Access</h2>
<p>
The data can be explored interactively in table format with the
<a href="../cgi-bin/hgTables">Table Browser</a> or the
<a href="../cgi-bin/hgIntegrator">Data Integrator</a> and exported from there to
spreadsheet or tab-sep tables. From scripts, the data can be accessed through
our <a href="https://api.genome.ucsc.edu">API</a>, track=<i>geneimprint</i>.
</p>
<p>
For automated download and analysis, the genome annotation is stored in a
bigBed file that can be downloaded from
<a href="http://hgdownload.soe.ucsc.edu/gbdb/hg38/imprinting/geneimprint/" target="_blank">our download server</a>.
The file for this track is called <tt>geneimprint.bb</tt>. Individual regions or
the whole genome annotation can be obtained using our tool
<tt>bigBedToBed</tt>, which can be compiled from the source code or downloaded
as a precompiled binary for your system. Instructions for downloading source
code and binaries can be found
<a href="http://hgdownload.soe.ucsc.edu/downloads.html#utilities_downloads">here</a>.
The tool can also be used to obtain features within a given range, e.g.
<tt>bigBedToBed http://hgdownload.soe.ucsc.edu/gbdb/hg38/imprinting/geneimprint/geneimprint.bb -chrom=chr15 -start=23000000 -end=26000000 stdout</tt>
</p>
<p>
The original catalog can be browsed at
<a href="https://geneimprint.com/site/genes-by-species.Homo+sapiens" target="_blank">https://geneimprint.com/site/genes-by-species.Homo+sapiens</a>.
</p>
<h2>Credits</h2>
<p>
Thanks to Randy L. Jirtle for curating and publishing the Geneimprint catalog.
</p>
<h2>References</h2>
<p>
Luedi PP, Dietrich FS, Weidman JR, Bosko JM, Jirtle RL, Hartemink AJ.
<a href="https://genome.cshlp.org/lookup/pmidlookup?view=long&pmid=18055845" target="_blank">
Computational and experimental identification of novel human imprinted genes</a>.
<em>Genome Res</em>. 2007 Dec;17(12):1723-30.
PMID: <a href="https://www.ncbi.nlm.nih.gov/pubmed/18055845" target="_blank">18055845</a>; PMC: <a
href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2099581/" target="_blank">PMC2099581</a>
</p>