Commits for max
switch to files view, user index
v504_base to v505_preview (2026-09-21 to 2026-10-05) v505
Show details
8e55bcac3b1cf604a3cebbb7eaf4aac109449f76 Tue Sep 22 06:13:02 2026 -0700
- changing track name, refs #37524
- src/hg/makeDb/trackDb/human/mei.ra - lines changed 2, context: html, text, full: html, text
b5af24c744cd0f5571634a863c34f208bbd0a199 Wed Sep 23 11:15:40 2026 -0700
- hgTrackUi: better error when a faceted composite's metadata file is refused, refs #29344
The 400 error now says which URL was refused and for which track, and
that a hub's metaDataUrl or colorSettingsUrl has to point inside the
hub's directory. facetedComposite.js now shows that text instead of
just "HTTP Status: 400".
Also in facetedComposite.js: facet values with a count of zero are
hidden, unless they are checked, and there is a new "Clear all filters"
button that unchecks all facets and empties the search boxes.
- src/hg/hgTrackUi/hgTrackUi.c - lines changed 16, context: html, text, full: html, text
- src/hg/js/facetedComposite.js - lines changed 63, context: html, text, full: html, text
b197e1670a076b65838fd91b869a4ec1c3096c0f Wed Sep 23 16:08:08 2026 -0700
- Add Panmask Difficult 151b, the inverse of Panmask Easy 151b, for the Problematic Regions RTS
Panmask marks easy regions under a "Problematic Regions" container, which Anna
flagged as confusing. Rather than change the released Panmask Easy track, add
a second track with the complement regions, built with featureBits (excluding
assembly gaps and restricted to the 24 chromosomes Panmask itself covers).
Checked the source first: Zenodo record 16755940 is still v1.4, same version
already in use, MD5 verified. New track is alpha only for QA to pick up.
refs #38375
- src/hg/makeDb/doc/hg38/problematic.txt - lines changed 23, context: html, text, full: html, text
- src/hg/makeDb/trackDb/human/hg38/problematic.html - lines changed 10, context: html, text, full: html, text
- src/hg/makeDb/trackDb/human/hg38/problematic.ra - lines changed 11, context: html, text, full: html, text
1bab8758e7a5fe01120847c7fa68de71d1aa709e Wed Sep 23 16:16:44 2026 -0700
- commenting out a docs piece before release
- src/hg/makeDb/trackDb/human/hg38/problematic.html - lines changed 2, context: html, text, full: html, text
537820f946a4a16341ed8f68c477a89d8c11ce62 Wed Sep 23 16:20:49 2026 -0700
- docs
- src/hg/makeDb/trackDb/human/hg38/problematic.ra - lines changed 2, context: html, text, full: html, text
b3a26a6aff3896d7577be7f42ce94a7d841c91c7 Wed Sep 23 16:41:09 2026 -0700
- hgTrackUi: let a faceted composite load its metadata from any curated hub copy, refs #29344
Each sandbox attaches its own copy of a curated hub like hs1
(/gbdb/hs1/hubs/<curatedHubPrefix>/hub.txt), so a link to another
sandbox's copy arrived on other servers with that hub missing from the
cart, and the metadata file was refused. Now any copy in the curated
directory from dbDb is accepted. A hub that is not in the cart is
checked by its URL in hubStatus only, without fetching it.
- src/hg/hgTrackUi/hgTrackUi.c - lines changed 12, context: html, text, full: html, text
- src/hg/inc/hubConnect.h - lines changed 8, context: html, text, full: html, text
- src/hg/lib/hubConnect.c - lines changed 73, context: html, text, full: html, text
2ae817bcd648f2a3184bb4b118840e65749fea2d Thu Sep 24 04:15:20 2026 -0700
- problematic.txt/html: reconcile Panmask Easy/Difficult coverage to 87.8%/12.2%, one decimal place, refs #38375
- src/hg/makeDb/doc/hg38/problematic.txt - lines changed 3, context: html, text, full: html, text
- src/hg/makeDb/trackDb/human/hg38/problematic.html - lines changed 1, context: html, text, full: html, text
7aa59c8f6afbda4c2157d3990b2bbc48a39cac63 Fri Sep 25 02:48:31 2026 -0700
- varFreqs: add SFARI SPARK 45k WGS subtracks. sfariSparkWgs45k is built from the release's AF table (AN estimated, singletons dropped); sfariSparkWgs45kAsd is built from the genotype pVCFs with ASD/non-ASD counts, for now only the DSCAM locus while the genome-wide parasol run finishes, refs #38424
- src/hg/makeDb/doc/hg38/varFreqs.txt - lines changed 93, context: html, text, full: html, text
- src/hg/makeDb/scripts/varFreqs/sparkWgs45kPvcfJobs.sh - lines changed 29, context: html, text, full: html, text
- src/hg/makeDb/scripts/varFreqs/sparkWgs45kPvcfMerge.sh - lines changed 24, context: html, text, full: html, text
- src/hg/makeDb/scripts/varFreqs/sparkWgs45kPvcfRange.sh - lines changed 36, context: html, text, full: html, text
- src/hg/makeDb/scripts/varFreqs/sparkWgs45kPvcfSlice.py - lines changed 190, context: html, text, full: html, text
- src/hg/makeDb/scripts/varFreqs/sparkWgs45kPvcfToSites.sh - lines changed 69, context: html, text, full: html, text
- src/hg/makeDb/scripts/varFreqs/sparkWgs45kToVcf.py - lines changed 93, context: html, text, full: html, text
- src/hg/makeDb/scripts/varFreqs/sparkWgs45kToVcf.sh - lines changed 41, context: html, text, full: html, text
- src/hg/makeDb/trackDb/human/sfariSparkExomes.html - lines changed 59, context: html, text, full: html, text
- src/hg/makeDb/trackDb/human/varFreqs.ra - lines changed 43, context: html, text, full: html, text
2521d696f5073ce8cee3f59f423f161fdb77d550 Fri Sep 25 02:48:37 2026 -0700
- VCF tracks: the bigBed trackDb filters (filter.*, filterByRange, filterLimits, filterValues, filterType, filterText, filterLabel) now work on INFO fields, plus ID and QUAL. The field list and types come from the VCF header; the bigBed filter code is reused, bigBed behavior unchanged, refs #37617
- src/hg/hgTracks/bigBedTrack.c - lines changed 58, context: html, text, full: html, text
- src/hg/hgTracks/vcfTrack.c - lines changed 167, context: html, text, full: html, text
- src/hg/htdocs/goldenPath/help/trackDb/trackDbDoc.html - lines changed 7, context: html, text, full: html, text
- src/hg/htdocs/goldenPath/help/trackDb/trackDbLibrary.shtml - lines changed 38, context: html, text, full: html, text
- src/hg/inc/bigBedFilter.h - lines changed 15, context: html, text, full: html, text
- src/hg/makeDb/trackDb/tagTypes.tab - lines changed 5, context: html, text, full: html, text
ab2c23ac0279b262bbc6ecd601d1da77daefe67d Fri Sep 25 02:48:37 2026 -0700
- htmlTextStripTags and htmlTextStripJavascriptCssAndTags allocated no room for the terminating NUL, so a label without tags got garbage bytes, e.g. in filter tooltips, refs #37617
cf9cfcd463d40a868f8ee73dead17ff8071dce2f Fri Sep 25 03:00:20 2026 -0700
- CRISPR tracks: expose colorFields dropdown to color guides by off-target
specificity (MIT score) or by Moreno-Mateos efficiency, as alternatives to
the default Doench/Fusi-based itemRgb color. The bigBed already carries
these as the _specColor and _crisprScanColor extra fields; no data rebuild
needed.
- src/hg/makeDb/trackDb/crispr10K.ra - lines changed 1, context: html, text, full: html, text
- src/hg/makeDb/trackDb/crisprAll.ra - lines changed 1, context: html, text, full: html, text
- src/hg/makeDb/trackDb/human/hs1/crispr.ra - lines changed 1, context: html, text, full: html, text
- src/hg/makeDb/trackDb/trackDb.ra - lines changed 1, context: html, text, full: html, text
c9d17a52b6b5663c7175b01f801d23198b675f7e Fri Sep 25 12:03:55 2026 -0700
- Revert all bigBed-filters for VCF changes, as Chris did that earlier already.
This reverts commit 2521d696f5073ce8cee3f59f423f161fdb77d550.
- src/hg/hgTracks/bigBedTrack.c - lines changed 58, context: html, text, full: html, text
- src/hg/hgTracks/vcfTrack.c - lines changed 167, context: html, text, full: html, text
- src/hg/htdocs/goldenPath/help/trackDb/trackDbDoc.html - lines changed 7, context: html, text, full: html, text
- src/hg/htdocs/goldenPath/help/trackDb/trackDbLibrary.shtml - lines changed 38, context: html, text, full: html, text
- src/hg/inc/bigBedFilter.h - lines changed 15, context: html, text, full: html, text
- src/hg/makeDb/trackDb/tagTypes.tab - lines changed 5, context: html, text, full: html, text
e2c6af507b9d46c00083b9d560f643ee5f74e688 Fri Sep 25 13:11:31 2026 -0700
- hgSearch: fix JS error clicking MANE search result links, refs #38285
33a544e0b5f35f7e629290d4d0e74d56b1279f39 Fri Sep 25 13:41:13 2026 -0700
- hgSearch: fix sidebar collapsing when a result has a long unbroken match string, refs #38285
- src/hg/htdocs/inc/hgSearch.html - lines changed 6, context: html, text, full: html, text
90abb8f3321fc8cc0feb99ec196cd692dd55a5b0 Fri Sep 25 14:42:10 2026 -0700
- uniprot otto: size miniprot's memory from the proteins too, and survive a missing NCBI table
Twelve taxa died with "[morecore] insufficient memory" inside their reservation.
The formula sized the job from the genome alone, on a curve I measured by varying
the genome (227, 424 and 811 Mb) while holding the protein set at 125 sequences.
That characterised one input and generalised as though it had characterised the
function: the real runs align whole proteomes, 78457 sequences for zebrafish, and
the alignment work scales with that as well. A 0.46 Gb genome that the genome term
put at 8 GB ran out of memory.
There is now a term for the protein input and the floor is 16 GB rather than 8.
Checked by rerunning the exact job that failed, at the new reservation: it
completes and writes a 74 MB GFF. Reserving too much costs queue slots on a cluster
that absorbs these jobs easily; reserving too little throws the assembly away after
minutes of work.
Six more taxa died on a missing ncbi/<taxId>.tsv. Not every organism is in NCBI's
gene2refseq, so for some of them that file cannot exist. It is only used to resolve
UniProt's Entrez cross-references, and the caller already checks whether it got
anything, so a missing table now returns nothing and costs a little filtering
accuracy rather than the assembly. Those taxa would also have sent every future run
back to re-split 2.4 GB looking for a table that will never appear, so the split
now leaves an empty file behind to record that it looked.
refs #38300
- src/hg/utils/otto/uniprot/doUniprot - lines changed 41, context: html, text, full: html, text
51975d67889e63fbc5fbad0cf1a909ebcca5f25e Sat Sep 26 14:15:10 2026 -0700
- uniprot otto: let a run finish when a few taxa fail, and say where to read about them
A run over hundreds of organisms always has a few that cannot be built: one UniProt
barely annotates, one NCBI has no gene table for, a genome needing more memory than
was reserved. Until now any single one of them aborted the run before the flip, so
24 failures out of 664 taxa kept the other 640 from being published, twice.
--allowFailures=N carries on and publishes when no more than N taxa failed, and
doUpdate.sh passes 10 unless the caller says otherwise, so the monthly cron is no
longer hostage to a handful of awkward organisms. Above the threshold it still
aborts and publishes nothing, which is the right answer when something systemic
has broken.
Nothing is quieter as a result. Every failure is reported with its traceback as
before, and now each one also gets its own file under failedTaxa/<taxId>.log
holding the taxon, its assemblies, the time and the traceback. lastRun.log is
overwritten by the next run and interleaves every taxon, so a failure someone wants
to look at a day later was hard to find in it; these files are not overwritten
except by another failure of the same taxon.
The end-of-run report names each failed taxon with its assemblies and the path to
its log, and prints the --dbs argument to retry exactly those. The failure mail
from doUpdate.sh lists the log paths too.
Checked all three paths: below the threshold the run continues, above it aborts,
with no failures nothing changes. Checked that the cron form gets
--allowFailures=10, that an explicit --allowFailures wins, and that it does not
disturb other arguments.
refs #38300
- src/hg/utils/otto/uniprot/doUniprot - lines changed 62, context: html, text, full: html, text
- src/hg/utils/otto/uniprot/doUpdate.sh - lines changed 17, context: html, text, full: html, text
f03f56cd3c795a6fba2b8419662a9a2c5d49f69a Sat Sep 26 14:16:17 2026 -0700
- sfariSparkWgs45kAsd: now genome-wide (518M variants from the 45,178 genotype pVCFs, run on parasol); per-allele INFO fields declared Number=1 so the VCF track filters accept them, doc page no longer says DSCAM only, refs #38424
- src/hg/makeDb/doc/hg38/varFreqs.txt - lines changed 30, context: html, text, full: html, text
- src/hg/makeDb/scripts/varFreqs/sparkWgs45kPvcfToSites.sh - lines changed 5, context: html, text, full: html, text
- src/hg/makeDb/trackDb/human/sfariSparkExomes.html - lines changed 11, context: html, text, full: html, text
- src/hg/makeDb/trackDb/human/varFreqs.ra - lines changed 5, context: html, text, full: html, text
6831b39717c5f1b1c4c6e605916396c8b0890f7a Sat Sep 26 17:51:45 2026 -0700
- uniprot otto: a help string cannot mix %default with python formatting
The --allowFailures help text ended with a python % substitution while also
containing optparse's %default placeholder, so python tried to read %d out of
%default and every invocation died before parsing arguments:
TypeError: %d format: a real number is required, not str
Spell the directory out instead. Checked that no other help string in the file
combines the two.
refs #38300
- src/hg/utils/otto/uniprot/doUniprot - lines changed 2, context: html, text, full: html, text
a5c699a7301156154700f51a20ae571bc6987051 Sat Sep 26 17:53:41 2026 -0700
- varFreqs: remove the AF-table-based sfariSparkWgs45k subtrack, superseded by the genotype-based sfariSparkWgs45kAsd; drop its scripts, the DSCAM demo script and their makeDoc sections, refs #38424
- src/hg/makeDb/doc/hg38/varFreqs.txt - lines changed 115, context: html, text, full: html, text
- src/hg/makeDb/scripts/varFreqs/sparkWgs45kPvcfRange.sh - lines changed 36, context: html, text, full: html, text
- src/hg/makeDb/scripts/varFreqs/sparkWgs45kToVcf.py - lines changed 93, context: html, text, full: html, text
- src/hg/makeDb/scripts/varFreqs/sparkWgs45kToVcf.sh - lines changed 41, context: html, text, full: html, text
- src/hg/makeDb/trackDb/human/sfariSparkExomes.html - lines changed 24, context: html, text, full: html, text
- src/hg/makeDb/trackDb/human/varFreqs.ra - lines changed 12, context: html, text, full: html, text
18125243f8a0d219285fe081ed3f1eb8cd558ff2 Sat Sep 26 17:59:16 2026 -0700
- hgTracks: GenBank as a fourth format in the "Download Current Track Data" dialog
The file holds the DNA of the region in view plus the selected track items
as a GenBank feature table, so a region opens in the sequence editors people
already use: SnapGene, Benchling, ApE and the rest. Blocks become join()
locations, thickStart..thickEnd a CDS for the types that really carry a gene
model, and an item running off the edge of the view gets the partial markers.
Written in javascript beside the existing JSON/CSV/TSV converters, because
the dialog is entirely client side: it adds one getData/sequence call to the
getData/track call it already makes.
Behind showGenbankDownload in hg.conf, default off, registered as a release
gate in hgConfCatalog.py. Wiggle-type tracks have no GenBank equivalent and
are greyed out while the format is selected, and the region is capped at
100 Mbp because the web browser has to build the whole file in memory.
The dialog itself is reworked at the same time, for every format: the output
format comes first, then the file name, the track list and the check-all
buttons; it uses the page's font size and normal-height buttons instead of
jquery-ui's smaller ones; and the position sits on its own line with the
strand the Reverse button is showing. hgTracks.c adds organism and
scientificName to jsonForClient, which the GenBank header needs.
refs #38433
- src/hg/hgTracks/hgTracks.c - lines changed 10, context: html, text, full: html, text
- src/hg/js/hgTracks.js - lines changed 530, context: html, text, full: html, text
- src/hg/utils/hgConfCatalog/hgConfCatalog.py - lines changed 22, context: html, text, full: html, text
cd80acf5ecf157dedd8be818d5a684f6334b8b61 Sat Sep 26 18:19:43 2026 -0700
- varFreqs: add SFARI SPARK 45k WGS to the summary table; the old 12,519-genome SPARK WGS subtrack is now labeled SFARI SPARK iWGS v1.1 Pilot, refs #38424
- src/hg/makeDb/trackDb/human/varFreqs.html - lines changed 10, context: html, text, full: html, text
- src/hg/makeDb/trackDb/human/varFreqs.ra - lines changed 2, context: html, text, full: html, text
72282e5a10d847e7b8fc013b53bcff15e90499e8 Sat Sep 26 18:27:01 2026 -0700
- pslShow: clip alignment blocks to the sequences supplied, a bigPsl with out-of-range query coords could write past the end of the heap buffers
4decf5fbe82051b2d5aff9cabce3feae9dfafae1 Sat Sep 26 18:48:55 2026 -0700
- uniprot: stop declaring the alignments as amino acid coordinates, and show them properly
The bigPsl seqType field describes the coordinates, not the letters stored beside
them, and the UniProt query side is in bases: these proteins reach the genome
through transcripts, so a query runs three bases to a residue. Declaring amino
acids made pslFromBigPsl divide the block sizes by three and leave the query
coordinates alone, so every reader got an alignment measured in two units at once.
That fed a heap overflow in the alignment page, drew blocks short in hgTracks, and
loaded sub-codon blocks as size 0, which aborted pslTransMap and took down the
lifted SwissProt track (#38249).
pslProtFromNaLike() converts such a psl to one counted in residues. Blocks are
trimmed to whole codons, and a residue whose codon straddles an exon junction sits
in two places in the genome at once, so it gets no column and the page says how
many are missing rather than dropping them silently: 0.9% of residues, though 87%
of alignments have at least one. A bigPsl also keeps the reference strand where a
psl reads the query strand, so minus-strand items arrived claiming the protein was
reversed and were rendered as reverse complemented nucleotide ambiguity codes;
pslRc moves them to the convention blat uses, query forward and the strand on the
target.
Checked on hg38 against the translated genome: 210,416 residues over both strands,
99.86% identical, the remainder real protein-vs-reference variation. All 29 items
of a test region render the stored protein at the right residues. Files already
published still say amino acid and must keep working until they are rebuilt, so the
conversion also requires the blocks to measure the target the way the target is
measured; verified that separates the two shapes on 3000 records each way, and that
all 29 render without crashing in the old format, where they now say plainly that
the coordinates and the sequence do not match.
refs #38300
- src/hg/utils/otto/uniprot/doUniprot - lines changed 8, context: html, text, full: html, text
2450d99ee7e6173eff5045678d0c3d60463ff508 Sat Sep 26 21:48:03 2026 -0700
- hgwdev hg.conf: turn on showGenbankDownload, the GenBank output in the track download dialog, refs #38433
e061eee76c1c9e8c8161f99379273aa0d1146c1f Sat Sep 26 21:52:35 2026 -0700
- hgTracks: quickLifted superTracks keep their own bare-name visibility
A quickLifted superTrack's cart visibility var should always be read under
its own (undecorated) name, the same as its source assembly used, even when
the target assembly happens to have a native superTrack of the same name.
- src/hg/hgTracks/hgTracks.c - lines changed 6, context: html, text, full: html, text
b450839c514656467470338eaae47003e344b522 Sat Sep 26 21:52:53 2026 -0700
- geoMirror: send peer sync payload as a POST body, and pin the certificate check for it
- src/hg/lib/geoMirror.c - lines changed 70, context: html, text, full: html, text
4a642d5f4c2a3102d5c2620af754d876146d7c24 Sat Sep 26 21:53:49 2026 -0700
- trackHub: restrict a hub genome's organism/description to a plain display-label character set
8c0ef9e7b8633c0994cdaf8030d9c49c8b402016 Sat Sep 26 21:53:54 2026 -0700
- cart/hgSession: fix the session-load notice to always name the session actually loaded
- src/hg/hgSession/hgSession.c - lines changed 5, context: html, text, full: html, text
e3d5f0b1474ba392a87b2f65dc9701db3e88bfa2 Sat Sep 26 21:54:08 2026 -0700
- hgLogin: require POST and a per-page token to change the pending-signup address
- src/hg/hgLogin/hgLogin.c - lines changed 16, context: html, text, full: html, text
da43847aab52991e91bfec700b16038710710038 Sat Sep 26 21:56:05 2026 -0700
- VCF tracks: new trackDb setting excludeFilterValues, a comma-separated list of FILTER values that are hidden by default; they show up pre-checked in the existing Exclude variants with these FILTER values list, refs #38424
- src/hg/hgTracks/vcfTrack.c - lines changed 9, context: html, text, full: html, text
- src/hg/htdocs/goldenPath/help/trackDb/changes.html - lines changed 8, context: html, text, full: html, text
- src/hg/htdocs/goldenPath/help/trackDb/trackDbDoc.html - lines changed 3, context: html, text, full: html, text
- src/hg/htdocs/goldenPath/help/trackDb/trackDbHub.v3.html - lines changed 3, context: html, text, full: html, text
- src/hg/htdocs/goldenPath/help/trackDb/trackDbLibrary.shtml - lines changed 11, context: html, text, full: html, text
- src/hg/makeDb/trackDb/tagTypes.tab - lines changed 1, context: html, text, full: html, text
442e433a90b25deb87f10e6cf1b7b608bb0a6d67 Sat Sep 26 21:56:06 2026 -0700
- sfariSparkWgs45kAsd: flag 25M insertions of non-human (oral bacteria) sequence as FILTER NonHumanIns and hide them by default; add SFARI SPARK 45k WGS to the combined tracks without those insertions and relabel the 12k pilot as SFARI SPARK iWGS v1.1 Pilot, refs #38424
- src/hg/makeDb/doc/hg38/varFreqs.txt - lines changed 58, context: html, text, full: html, text
- src/hg/makeDb/scripts/varFreqs/databases.tsv - lines changed 4, context: html, text, full: html, text
- src/hg/makeDb/scripts/varFreqs/populations.tsv - lines changed 2, context: html, text, full: html, text
- src/hg/makeDb/scripts/varFreqs/sparkWgs45kFlagNonHumanIns.sh - lines changed 66, context: html, text, full: html, text
- src/hg/makeDb/scripts/varFreqs/sparkWgs45kNonHumanIns.py - lines changed 100, context: html, text, full: html, text
- src/hg/makeDb/trackDb/human/sfariSparkExomes.html - lines changed 18, context: html, text, full: html, text
- src/hg/makeDb/trackDb/human/varFreqs.ra - lines changed 5, context: html, text, full: html, text
- src/hg/makeDb/trackDb/human/varFreqsAffected.html - lines changed 10, context: html, text, full: html, text
- src/hg/makeDb/trackDb/human/varFreqsBackground.html - lines changed 5, context: html, text, full: html, text
d27769317be7f92e199f69d75b10a7421eecf770 Sat Sep 26 21:57:15 2026 -0700
- hgGeneGraph: require a form submission and a checked answer to file a feedback report
- src/hg/hgGeneGraph/hgGeneGraph - lines changed 17, context: html, text, full: html, text
92c5b9ee733e28d68fbb180b26d175b46776a27e Sat Sep 26 21:59:16 2026 -0700
- hgTracks: fix hub genome dropdown's db-field collision, add real labels and position lookup
The groupDropdown "Genomes:" select shared name='db' with TrackForm's own
hidden db field, so submitting any button in the form (e.g. Hide all) sent
two values for db and the hub's own genome silently won it. Give the select
its own id instead, and switch genomes via an onchange handler that sets
the real db field and resubmits.
Also label each option via hOrganism()/hFreezeFromDb() (the same lookup
hgTracks already uses for the page title), so native UCSC assemblies get a
readable label too, not just GenArk-style hub genomes; and reset position
to the target genome's own default position via hDbDb() before resubmitting,
since a coordinate from the current assembly usually doesn't exist in the
next one.
refs #38434
- src/hg/hgTracks/hgTracks.c - lines changed 55, context: html, text, full: html, text
0a83d5e5518e414b2745d4429f3770b70d8fc9ac Sat Sep 26 21:59:44 2026 -0700
- hgConfCatalog: update groupDropdown description to match current behavior
refs #38434
- src/hg/utils/hgConfCatalog/hgConfCatalog.py - lines changed 25, context: html, text, full: html, text
8845ab537236d54abbc2b6815ea80de681ac21ef Sat Sep 26 22:08:34 2026 -0700
- hgTracks: one track-data download at a time, a second click used to leave a timer nothing could stop
The download dialog polls a 200ms timer while it waits on the api and keeps
that timer id in one field. The Download button stays live while a request is
in flight, so a second click started a second timer and overwrote the id of
the first. Nothing could stop the first one after that: it went on firing
every 200ms once the data had been handed over and cleared, finding nothing
to build a file from each time, which since the GenBank output landed means
an alert box five times a second until the page is reloaded.
startDownload now returns if a download is already running, and the three
places that stop the timer go through stopWaiting(), which forgets the id as
well as clearing it, so the next download can start and a failed request does
not wedge the dialog.
refs #38433
8954c29282f84de8f41c183a4cbb2817fbbb87c5 Mon Sep 28 13:53:57 2026 -0700
- uniprot otto: an empty cached mapping means nothing aligned, not a broken file, refs #38300
- src/hg/utils/otto/uniprot/doUniprot - lines changed 9, context: html, text, full: html, text
66c51e29423da24a7144c7ba99a4cc2ebc96b32c Mon Sep 28 13:54:36 2026 -0700
- varFreqs: combined tracks rebuilt with SFARI SPARK 45k WGS (without its NonHumanIns insertions); add its filter blocks, affected label now ~150,000 individuals, refs #38424
- src/hg/makeDb/doc/hg38/varFreqs.txt - lines changed 17, context: html, text, full: html, text
- src/hg/makeDb/trackDb/human/varFreqs.ra - lines changed 65, context: html, text, full: html, text
9e51fd38996566e7a6cc29dd67f2e05fa429ca3c Mon Sep 28 14:30:05 2026 -0700
- hg38 episignatures: hide epigenCentral bigBed from hgdownload
Lou asked for downloads off for this track. tableBrowser off already
covers Table Browser/Data Integrator/REST API, but the bigBed itself
was still reachable on hgdownload. Prefix the gbdb filename with "_",
same convention used for the restricted varFreqs subtracks, which
hgdownload's rsync excludes. methaDory.bb is unaffected. refs #38112
- src/hg/makeDb/doc/hg38/episignatures.txt - lines changed 12, context: html, text, full: html, text
- src/hg/makeDb/trackDb/human/hg38/episignatures.ra - lines changed 1, context: html, text, full: html, text
6743564c0d16d85e588d5a9d80097e4690b91666 Tue Sep 29 15:37:43 2026 -0700
- hgTracks: tell the user when a track download is incomplete or still being prepared, and put the GenBank size limit under hg.conf
Four things in the "Download Current Track Data" dialog, all of them about a
download that quietly does the wrong thing.
The api stops at a limit on how many items it will return and says so with
maxItemsLimit in the reply, which the dialog ignored. Worse, a truncated reply
carries two extra top level fields, maxItemsLimit and dataDownloadUrl, and the
CSV/TSV converter took every top level field it did not recognise for a track:
the string one was iterated one character per row, and the conversion threw
before writing anything. A truncated CSV or TSV download therefore produced no
file and no message at all. A track's value is always the array of its rows, so
that is now the test for what is a track, rather than a list of field names that
the api will keep outgrowing. All formats now say plainly that the file is
incomplete, and the GenBank file carries the same warning in its COMMENT block,
where it outlives the dialog.
Nothing showed that anything was happening between the click and the browser's
download, which is one second for two tracks and four for twenty, on a 20 kb
region. The Download button now goes disabled with a line beside it while the
file is prepared. It is in the button pane rather than the dialog body because
the body scrolls once the track list is long.
The GenBank region limit drops from 100 Mbp to 25 Mbp. 50 Mbp of chr1 with 24
tracks answers with 340 MB of track json and 50 MB of sequence, which the web
browser parses, copies into the file text and copies again into the Blob, so the
tab needs several times the region in memory. The limit is now the hg.conf
setting maxGenbankRegion, registered in hgConfCatalog.py as a knob: the ceiling
belongs to the machine and its users. It is read only when showGenbankDownload
is on, and a value that is not a positive number falls back to the default
rather than aborting the CGI.
refs #38433
- src/hg/hgTracks/hgTracks.c - lines changed 11, context: html, text, full: html, text
- src/hg/utils/hgConfCatalog/hgConfCatalog.py - lines changed 19, context: html, text, full: html, text
b6f15357f432f1c218fabcb0d53777322e357c00 Tue Sep 29 15:43:57 2026 -0700
- hgGeneGraph: bind the feedback-form arithmetic check to its target and a real secret
Reuses a per-render hash instead of a fixed public constant, and ties it to
the specific gene pair rather than just the answer, refs #38399
- src/hg/hgGeneGraph/hgGeneGraph - lines changed 14, context: html, text, full: html, text
8afc792afaf50aab2d6b83a33ba41b47dbf1df4a Tue Sep 29 15:51:16 2026 -0700
- hgSession: also clear the pending session-load marker before a local-file save
The named-session save path already did this; the "save as local file"
export path did not, so the marker (and the session name/owner it points
at) could ride along into an exported file and resurface on re-import,
refs #38399
- src/hg/hgSession/hgSession.c - lines changed 18, context: html, text, full: html, text
0cfbb0ae0beabd4e52ccad30dd876d4d42795cba Tue Sep 29 23:32:19 2026 -0700
- hgTracks: html-encode the values the track download dialog builds into its markup
The dialog assembles its html by string concatenation, and several of the values
that go in are not written by the code: the track names and short labels come
from trackDb, which for a hub means from the hub, the assembly name can carry a
hub's own naming, and the region line is whatever the position box holds. They
now go through htmlEncode() from utils.js, the shared helper, which covers both
element text and single-quoted attribute values, so a label or a name comes out
as the text it is meant to be.
refs #38226
7bf9ad5d27f838f39326f49e9670da152f51e1c6 Wed Sep 30 15:02:37 2026 -0700
- vcfTabix tracks: trackDb setting maxItems now also sets the maximum number of VCF records loaded for the window, overriding the hg.conf setting vcfMaxItems (default 10000), refs #37306
- src/hg/hgTracks/vcfTrack.c - lines changed 15, context: html, text, full: html, text
9cedfa38c14068c79dec89f76c606ee22b3f931a Wed Sep 30 15:02:37 2026 -0700
- phasedVars: new subtrack hgdp1kSnv, a 17GB version of the 3.5TB gnomAD HGDP+1000G genotype VCF with only SNVs with AC>5 and only GT, so haplotype clustering can be shown up to 5Mbp, refs #37306
- src/hg/makeDb/doc/hg38/varFreqs.txt - lines changed 12, context: html, text, full: html, text
- src/hg/makeDb/scripts/varFreqs/hgdp1kCommonSnvs.sh - lines changed 62, context: html, text, full: html, text
- src/hg/makeDb/trackDb/human/phasedVars.html - lines changed 12, context: html, text, full: html, text
- src/hg/makeDb/trackDb/human/phasedVars.ra - lines changed 14, context: html, text, full: html, text
619d7563efb2f65ce421d9e40cb1965584ef1d78 Sun Oct 4 05:51:58 2026 -0700
- api.html: document the /blat endpoint (query types, apiKey, parameters, limits, output formats), refs #36315
- src/hg/htdocs/goldenPath/help/api.html - lines changed 78, context: html, text, full: html, text
682284bfd2b229728cbef4ecf79e8b5481953327 Sun Oct 4 05:55:37 2026 -0700
- hg38 epigenCentral: description wording from the EpigenCentral reviewers (available on, direction filter, classification models, drop Dup7 NA note, credits)
- src/hg/makeDb/trackDb/human/hg38/epigenCentral.html - lines changed 13, context: html, text, full: html, text
ec8d25d5bd0eac0a4f5172603e704106cbf6c66b Sun Oct 4 06:37:38 2026 -0700
- methbase2 otto: ssh to hgdownload as the invoking user, not as qateam, refs #34246
- src/hg/utils/otto/methbase2/makefile - lines changed 1, context: html, text, full: html, text
- src/hg/utils/otto/methbase2/methbaseDownload - lines changed 1, context: html, text, full: html, text
- src/hg/utils/otto/methbase2/methbaseOtto.sh - lines changed 1, context: html, text, full: html, text
d8d88eb7e5c8e6df478626e5b88ee7c923c43995 Sun Oct 4 09:48:15 2026 -0700
- sfariSparkExomes.html: SFARI will realign and re-call the 45k WGS release (alt-aware alignment problem), the track will be updated then, refs #38424
- src/hg/makeDb/trackDb/human/sfariSparkExomes.html - lines changed 3, context: html, text, full: html, text
6aca098fdf7765a7122271fdcc18d5ddfe468edc Sun Oct 4 09:59:09 2026 -0700
- trackDb docs: maxItems now also sets the VCF record limit of vcfTabix tracks, refs #37306
- src/hg/htdocs/goldenPath/help/trackDb/changes.html - lines changed 8, context: html, text, full: html, text
- src/hg/htdocs/goldenPath/help/trackDb/trackDbLibrary.shtml - lines changed 7, context: html, text, full: html, text
565ac9d3328f0be9631e61787e82c4768e96a963 Sun Oct 4 10:46:30 2026 -0700
- quickLift: note that pslWithoutEmptyBlocks is dead code since #38300, refs #38249
8f1e82cfa7e46ca358c97ea135bf20cf0bbf6026 Sun Oct 4 10:49:13 2026 -0700
- hVarSubst/trackHub: encode a hub genome's organism/date text instead of rejecting it
The earlier character-exclusion check could reject a hub whose organism or
freeze/date label uses ordinary punctuation that has every right to be there.
Replace it with a narrow %-encode of the two characters that mattered for
where this text gets substituted, applied at render time; everything else
passes through unchanged, refs #38399
- src/hg/lib/hVarSubst.c - lines changed 31, context: html, text, full: html, text
45eb30c0414d20710274af10680660b9d00f04b8 Mon Oct 5 01:23:09 2026 -0700
- uniprot otto: raise miniprot's memory when a job runs out, and skip an assembly with no transcripts
Two of the eight taxa that failed the GenArk run died with
"[morecore] insufficient memory" inside their reservation, so the sizing was
wrong a second time. Measuring says it cannot be sized from the inputs at all:
0.46 Gb of genome with 78457 proteins fits in 16 GB, while 0.86 Gb with 50305
proteins peaks at 43.3 GB. Half the protein and twice the genome needs at least
2.7 times the memory, so no sum of a genome term and a protein term fits both.
What drives it is how much alignment work the sequence generates, which the file
sizes do not show.
So stop predicting. The formula stays as a first guess and the batch is run again
with four times the reservation when a job ran out of memory, up to three tries.
A batch that failed for any other reason is not retried, so the 2.5 Gb genome that
segfaults is still only run once. Checked the detector against both real batches:
the one that ran out of memory reads as such, the one that segfaulted does not.
para records the raw wait status, so 134 means the abort miniprot makes when
malloc fails. The reservation lives in the batch, so freeing it and deleting the
state files is what lets para make use a new one; checked that freeBatch does not
prompt and that a cleared batch runs again.
Three more of the eight had a gene track that produced no transcripts at all.
BLAST was pointed at an empty database and all 929 of its jobs crashed, taking the
taxon down after a long detour through the cluster. There is nothing to align
against, so that assembly is now skipped the way one with no alignments already is.
refs #38300
- src/hg/utils/otto/uniprot/doUniprot - lines changed 80, context: html, text, full: html, text
85320722a5537e851769a87a141b2094aa145847 Mon Oct 5 01:29:25 2026 -0700
- phasedVars.html: comment out the hgdp1kSnv methods paragraph until that subtrack is released, refs #37306
- src/hg/makeDb/trackDb/human/phasedVars.html - lines changed 2, context: html, text, full: html, text
758f5d57800f3a5eb3fdd49260bcefbc1435bb91 Mon Oct 5 08:14:28 2026 -0700
- cartLoadUserSessionExt: copy the session owner and name before the cart is cleared, so the session-load notice names the loaded session, refs #38472
switch to files view, user index