File Changes for braney
switch to commits view, user indexv497_base to v498_preview (2026-04-20 to 2026-04-27) v498
Show details
- src/hg/hgGene/hgGene.c
- lines changed 9, context: html, text, full: html, text
3670b9f2a58342dcc0629bad9d221a9d5e4ae5ff Thu Apr 23 14:39:37 2026 -0700
hgGene: render all sections and the Methods page for QuickLift knownGene clicks. refs #36370
- synonym.c: wrap the coord-qualified kgProteinID lookup in emptyForNull.
After quickLiftGenePred() rewrites curGeneChrom/Start/End to destination
coords, the same-transaction lookup against the source assembly's
knownGene table misses and sqlGetField returns NULL; strstr(NULL, "-")
on the next line segfaulted, truncating the page at <B>Protein: </B>
so GeneReviews, Methods, and any later sections never rendered.
- hgGene.c doKgMethod: when the track is quickLifted and the hub trackDb
has no html, refetch the trackDb from quickLiftDb using
trackHubSkipHubName(tableName). The Methods "Click here" link was
landing on a page whose entire body was printf("%s", NULL) => "(null)".
Verified on hgwdev-braney with Gerardo's repro (hg38 -> hs1 QuickLift,
chr7:156982676-156996015 window, MNX1 / ENST00000469500.5): all 13
sections now render and Methods serves the full GENCODE description.
No change on the native hg38 path.
- src/hg/hgGene/synonym.c
- lines changed 1, context: html, text, full: html, text
3670b9f2a58342dcc0629bad9d221a9d5e4ae5ff Thu Apr 23 14:39:37 2026 -0700
hgGene: render all sections and the Methods page for QuickLift knownGene clicks. refs #36370
- synonym.c: wrap the coord-qualified kgProteinID lookup in emptyForNull.
After quickLiftGenePred() rewrites curGeneChrom/Start/End to destination
coords, the same-transaction lookup against the source assembly's
knownGene table misses and sqlGetField returns NULL; strstr(NULL, "-")
on the next line segfaulted, truncating the page at <B>Protein: </B>
so GeneReviews, Methods, and any later sections never rendered.
- hgGene.c doKgMethod: when the track is quickLifted and the hub trackDb
has no html, refetch the trackDb from quickLiftDb using
trackHubSkipHubName(tableName). The Methods "Click here" link was
landing on a page whose entire body was printf("%s", NULL) => "(null)".
Verified on hgwdev-braney with Gerardo's repro (hg38 -> hs1 QuickLift,
chr7:156982676-156996015 window, MNX1 / ENST00000469500.5): all 13
sections now render and Methods serves the full GENCODE description.
No change on the native hg38 path.
- src/hg/hgTracks/simpleTracks.c
- lines changed 1, context: html, text, full: html, text
8c8823d9a87b6046094577a808dda4ed4172b416 Thu Apr 23 11:09:48 2026 -0700
Make quickLifted GENCODE tracks usable: click details, position links, coloring. refs #36059
- Re-vet wgEncodeGencode* in trackHub.c:isVetted() so the quickLift hub
no longer emits `avoidHandler on` for GENCODE children. Without this,
hgc bypasses findNameBasedHandler and doGencodeGene is never reached,
so the details page falls through to the generic showGenePos output.
- In gencodeClick.c doGencodeGene/helpers, use quickLiftDb for the
MySQL connection (the attrs/tag/pubMed/refSeq/uniProt tables live in
the source assembly), use trackHubSkipHubName(tdb->track) for the
genePred table name and the Basic/Comp/PseudoGene/PolyA prefix
dispatch checks, and teach isGrcHuman/isGrcH37Native to consult the
source db — otherwise the page errAborted with
"BUG: gencodeClick on wrong database: hub_NNNNN_hs1".
- Lift the Position values (transcript + gene bounds, 2-way pseudo,
PolyA) through the quickLift chain before printing, so the details
page shows destination-assembly coords and the Position link lands
at a window that actually contains the gene.
- htcDnaNearGene (hgc.c): when quickLifted, lift seqName/winStart/winEnd
back to source coords before hgSeqItemsInRange. The prior code
pointed the query at the source-assembly table but still passed the
destination window, so the "Genomic Sequence from assembly" flow
returned "No results returned from query." No longer reachable from
the GENCODE details page (doGencodeGene writes its own Sequences
table) but still hit by other quickLifted genePred tracks.
- simpleTracks.c genePredItemClassColor: the hTableExists() guard was
checking `database` (the destination hub db like hub_NNNNN_hs1) even
though the MySQL conn was already routed to liftDb; the lookup was
skipped and every item fell back to tg->ixColor, rendering all
black. Check `db` instead so the gClass_* palette (coding / nonCoding
/ pseudo / problem) is applied.
Verified end-to-end on hgwdev-braney: Gerardo's SHH test case
(ENST00000297261.7) and Basic/Comp/PseudoGene/PolyA subtracks; no
regression on the non-quickLifted hg38 click.
- src/hg/hgc/bigBedClick.c
- lines changed 1, context: html, text, full: html, text
c13d7b1af23d1e1a6f015953536e2d74a467fb16 Wed Apr 22 17:25:40 2026 -0700
hgc bigBed click: skip intervals that fail to quickLift remap instead of errAborting with an out-of-bounds read. The errAbort message printed fields[3] on a stack-allocated fields[bedSize+seq1Seq2Fields]; for a bigBed3 (e.g. GIAB problematicRegions) that's one past the end, producing garbled binary text in the warning dialog. More importantly, for bedSize==3 there is no name filter before the remap, so every interval in the window was remapped and any single failure aborted the whole page. Match the hgTracks behavior (bigBedTrack.c: continue on NULL) so unmappable items are silently dropped and the clicked item still renders. refs #36335
- src/hg/hgc/gencodeClick.c
- lines changed 64, context: html, text, full: html, text
8c8823d9a87b6046094577a808dda4ed4172b416 Thu Apr 23 11:09:48 2026 -0700
Make quickLifted GENCODE tracks usable: click details, position links, coloring. refs #36059
- Re-vet wgEncodeGencode* in trackHub.c:isVetted() so the quickLift hub
no longer emits `avoidHandler on` for GENCODE children. Without this,
hgc bypasses findNameBasedHandler and doGencodeGene is never reached,
so the details page falls through to the generic showGenePos output.
- In gencodeClick.c doGencodeGene/helpers, use quickLiftDb for the
MySQL connection (the attrs/tag/pubMed/refSeq/uniProt tables live in
the source assembly), use trackHubSkipHubName(tdb->track) for the
genePred table name and the Basic/Comp/PseudoGene/PolyA prefix
dispatch checks, and teach isGrcHuman/isGrcH37Native to consult the
source db — otherwise the page errAborted with
"BUG: gencodeClick on wrong database: hub_NNNNN_hs1".
- Lift the Position values (transcript + gene bounds, 2-way pseudo,
PolyA) through the quickLift chain before printing, so the details
page shows destination-assembly coords and the Position link lands
at a window that actually contains the gene.
- htcDnaNearGene (hgc.c): when quickLifted, lift seqName/winStart/winEnd
back to source coords before hgSeqItemsInRange. The prior code
pointed the query at the source-assembly table but still passed the
destination window, so the "Genomic Sequence from assembly" flow
returned "No results returned from query." No longer reachable from
the GENCODE details page (doGencodeGene writes its own Sequences
table) but still hit by other quickLifted genePred tracks.
- simpleTracks.c genePredItemClassColor: the hTableExists() guard was
checking `database` (the destination hub db like hub_NNNNN_hs1) even
though the MySQL conn was already routed to liftDb; the lookup was
skipped and every item fell back to tg->ixColor, rendering all
black. Check `db` instead so the gClass_* palette (coding / nonCoding
/ pseudo / problem) is applied.
Verified end-to-end on hgwdev-braney: Gerardo's SHH test case
(ENST00000297261.7) and Basic/Comp/PseudoGene/PolyA subtracks; no
regression on the non-quickLifted hg38 click.
- src/hg/hgc/geneReviewsClick.c
- lines changed 6, context: html, text, full: html, text
7120a354ec4870b3bc2112c384bdb0af837ed44e Thu Apr 23 14:12:36 2026 -0700
hgc: make quickLifted NCBI RefSeq / UCSC RefSeq click details work. refs #36125
- trackHub.c isVetted(): accept refGene, ncbiRefSeq* subtracks, and ncbiOrtho
so the generated quickLift hub.txt doesn't emit 'avoidHandler on' for them.
Without this, hgc skips findNameBasedHandler and the detail click falls
through to genericClickHandler, showing none of the rich RefSeq fields.
- hgc.c findNameBasedHandler: when the tdb has 'quickLifted on', strip the
hub_NNN_ prefix from the dispatch table before comparisons so refGene /
ncbiRefSeq* match their native handlers.
- doNcbiRefSeq / doRefGene: route hAllocConn to quickLiftDb (source), use
trackHubSkipHubName for track/table name comparisons, and pass srcDb into
replaceInUrl, hTableExists, AceView / MGIid / jaxOrtholog / hg-prefix
checks -- otherwise these paths errAborted with "Unknown database
hub_NNN_<db>" on a quickLifted click.
- printRefSeqInfo / prRefGeneInfo / gbCdnaGetVersion: use sqlGetDatabase(conn)
rather than the global `database` for host-db checks.
- Predicted Protein / Predicted mRNA links for quickLifted tracks now point
at htcTranslatedPredMRna / htcGeneMrna so the sequences come from the
destination genome at the lifted exon coordinates, rather than the
NCBI-authored refPep / seqNcbiRefSeq extFiles on the source. Native
behavior is unchanged.
- showGenePos: fetch via quickLiftSql + calcLiftOverGenePreds when the track
is quickLifted so the Position line is in destination coordinates. The
swapped chainHash comes from the track's quickLiftUrl bigChain, matching
the pattern getGenePredForPositionSql already uses.
- Suppress the mRNA/Genomic Alignments block and its trailing <hr> for
quickLifted refGene / ncbiRefSeq* clicks. The PSLs come back in source
coords and the htcCdnaAli links don't line up with the destination window.
- getAlignmentsTName: use sqlGetDatabase(conn) rather than global `database`
so split-table resolution looks up the right db.
- printGeneCards: take a db argument; callers pass srcDb so the GeneCards
link renders on quickLifted pages (the "startsWith hg" check was matching
hub_NNN_hs1 as false).
- geneReviewsClick.c prGRShortRefGene: take a struct sqlConnection * rather
than opening its own on `database` (hub_NNN_hs1 -> Unknown database abort).
Callers in prRefGeneInfo and doOmimGene2 pass their existing source-db
conn, so the Related GeneReviews line now shows on both native and
quickLifted refGene pages.
Verified end-to-end on hgwdev-braney with hg38 -> hs1 quickLift of the
refSeqComposite: ncbiRefSeqCurated and refGene clicks on SHH now render
the full doNcbiRefSeq / doRefGene details (RefSeq / Status / Description
/ Synonyms / OMIM / Protein / HGNC / Entrez Gene / GeneCards / AceView /
Summary / Position / Gene Symbol); Predicted mRNA and Predicted Protein
links return destination-derived sequences; Genomic Sequence reaches the
Get-DNA-in-window page; Ctrl/Cmd+drag zoom no longer ends up with an
HTML error page inside the zoom dialog. Non-quickLifted hg38 refSeq
details are unchanged (alignments still shown, GeneReviews still present).
The duplicate-subtracks symptom from the ticket's step (i) is not
addressed here -- it's an architectural consequence of the shared
`refSeqComposite` cart key applying to both the destination's native
composite and the quickLift hub's composite, and needs cart-scoping
work in quickLift v2.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- src/hg/hgc/hgc.c
- lines changed 11, context: html, text, full: html, text
8c8823d9a87b6046094577a808dda4ed4172b416 Thu Apr 23 11:09:48 2026 -0700
Make quickLifted GENCODE tracks usable: click details, position links, coloring. refs #36059
- Re-vet wgEncodeGencode* in trackHub.c:isVetted() so the quickLift hub
no longer emits `avoidHandler on` for GENCODE children. Without this,
hgc bypasses findNameBasedHandler and doGencodeGene is never reached,
so the details page falls through to the generic showGenePos output.
- In gencodeClick.c doGencodeGene/helpers, use quickLiftDb for the
MySQL connection (the attrs/tag/pubMed/refSeq/uniProt tables live in
the source assembly), use trackHubSkipHubName(tdb->track) for the
genePred table name and the Basic/Comp/PseudoGene/PolyA prefix
dispatch checks, and teach isGrcHuman/isGrcH37Native to consult the
source db — otherwise the page errAborted with
"BUG: gencodeClick on wrong database: hub_NNNNN_hs1".
- Lift the Position values (transcript + gene bounds, 2-way pseudo,
PolyA) through the quickLift chain before printing, so the details
page shows destination-assembly coords and the Position link lands
at a window that actually contains the gene.
- htcDnaNearGene (hgc.c): when quickLifted, lift seqName/winStart/winEnd
back to source coords before hgSeqItemsInRange. The prior code
pointed the query at the source-assembly table but still passed the
destination window, so the "Genomic Sequence from assembly" flow
returned "No results returned from query." No longer reachable from
the GENCODE details page (doGencodeGene writes its own Sequences
table) but still hit by other quickLifted genePred tracks.
- simpleTracks.c genePredItemClassColor: the hTableExists() guard was
checking `database` (the destination hub db like hub_NNNNN_hs1) even
though the MySQL conn was already routed to liftDb; the lookup was
skipped and every item fell back to tg->ixColor, rendering all
black. Check `db` instead so the gClass_* palette (coding / nonCoding
/ pseudo / problem) is applied.
Verified end-to-end on hgwdev-braney: Gerardo's SHH test case
(ENST00000297261.7) and Basic/Comp/PseudoGene/PolyA subtracks; no
regression on the non-quickLifted hg38 click.
- lines changed 126, context: html, text, full: html, text
7120a354ec4870b3bc2112c384bdb0af837ed44e Thu Apr 23 14:12:36 2026 -0700
hgc: make quickLifted NCBI RefSeq / UCSC RefSeq click details work. refs #36125
- trackHub.c isVetted(): accept refGene, ncbiRefSeq* subtracks, and ncbiOrtho
so the generated quickLift hub.txt doesn't emit 'avoidHandler on' for them.
Without this, hgc skips findNameBasedHandler and the detail click falls
through to genericClickHandler, showing none of the rich RefSeq fields.
- hgc.c findNameBasedHandler: when the tdb has 'quickLifted on', strip the
hub_NNN_ prefix from the dispatch table before comparisons so refGene /
ncbiRefSeq* match their native handlers.
- doNcbiRefSeq / doRefGene: route hAllocConn to quickLiftDb (source), use
trackHubSkipHubName for track/table name comparisons, and pass srcDb into
replaceInUrl, hTableExists, AceView / MGIid / jaxOrtholog / hg-prefix
checks -- otherwise these paths errAborted with "Unknown database
hub_NNN_<db>" on a quickLifted click.
- printRefSeqInfo / prRefGeneInfo / gbCdnaGetVersion: use sqlGetDatabase(conn)
rather than the global `database` for host-db checks.
- Predicted Protein / Predicted mRNA links for quickLifted tracks now point
at htcTranslatedPredMRna / htcGeneMrna so the sequences come from the
destination genome at the lifted exon coordinates, rather than the
NCBI-authored refPep / seqNcbiRefSeq extFiles on the source. Native
behavior is unchanged.
- showGenePos: fetch via quickLiftSql + calcLiftOverGenePreds when the track
is quickLifted so the Position line is in destination coordinates. The
swapped chainHash comes from the track's quickLiftUrl bigChain, matching
the pattern getGenePredForPositionSql already uses.
- Suppress the mRNA/Genomic Alignments block and its trailing <hr> for
quickLifted refGene / ncbiRefSeq* clicks. The PSLs come back in source
coords and the htcCdnaAli links don't line up with the destination window.
- getAlignmentsTName: use sqlGetDatabase(conn) rather than global `database`
so split-table resolution looks up the right db.
- printGeneCards: take a db argument; callers pass srcDb so the GeneCards
link renders on quickLifted pages (the "startsWith hg" check was matching
hub_NNN_hs1 as false).
- geneReviewsClick.c prGRShortRefGene: take a struct sqlConnection * rather
than opening its own on `database` (hub_NNN_hs1 -> Unknown database abort).
Callers in prRefGeneInfo and doOmimGene2 pass their existing source-db
conn, so the Related GeneReviews line now shows on both native and
quickLifted refGene pages.
Verified end-to-end on hgwdev-braney with hg38 -> hs1 quickLift of the
refSeqComposite: ncbiRefSeqCurated and refGene clicks on SHH now render
the full doNcbiRefSeq / doRefGene details (RefSeq / Status / Description
/ Synonyms / OMIM / Protein / HGNC / Entrez Gene / GeneCards / AceView /
Summary / Position / Gene Symbol); Predicted mRNA and Predicted Protein
links return destination-derived sequences; Genomic Sequence reaches the
Get-DNA-in-window page; Ctrl/Cmd+drag zoom no longer ends up with an
HTML error page inside the zoom dialog. Non-quickLifted hg38 refSeq
details are unchanged (alignments still shown, GeneReviews still present).
The duplicate-subtracks symptom from the ticket's step (i) is not
addressed here -- it's an architectural consequence of the shared
`refSeqComposite` cart key applying to both the destination's native
composite and the quickLift hub's composite, and needs cart-scoping
work in quickLift v2.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- src/hg/hgc/hgc.h
- lines changed 1, context: html, text, full: html, text
7120a354ec4870b3bc2112c384bdb0af837ed44e Thu Apr 23 14:12:36 2026 -0700
hgc: make quickLifted NCBI RefSeq / UCSC RefSeq click details work. refs #36125
- trackHub.c isVetted(): accept refGene, ncbiRefSeq* subtracks, and ncbiOrtho
so the generated quickLift hub.txt doesn't emit 'avoidHandler on' for them.
Without this, hgc skips findNameBasedHandler and the detail click falls
through to genericClickHandler, showing none of the rich RefSeq fields.
- hgc.c findNameBasedHandler: when the tdb has 'quickLifted on', strip the
hub_NNN_ prefix from the dispatch table before comparisons so refGene /
ncbiRefSeq* match their native handlers.
- doNcbiRefSeq / doRefGene: route hAllocConn to quickLiftDb (source), use
trackHubSkipHubName for track/table name comparisons, and pass srcDb into
replaceInUrl, hTableExists, AceView / MGIid / jaxOrtholog / hg-prefix
checks -- otherwise these paths errAborted with "Unknown database
hub_NNN_<db>" on a quickLifted click.
- printRefSeqInfo / prRefGeneInfo / gbCdnaGetVersion: use sqlGetDatabase(conn)
rather than the global `database` for host-db checks.
- Predicted Protein / Predicted mRNA links for quickLifted tracks now point
at htcTranslatedPredMRna / htcGeneMrna so the sequences come from the
destination genome at the lifted exon coordinates, rather than the
NCBI-authored refPep / seqNcbiRefSeq extFiles on the source. Native
behavior is unchanged.
- showGenePos: fetch via quickLiftSql + calcLiftOverGenePreds when the track
is quickLifted so the Position line is in destination coordinates. The
swapped chainHash comes from the track's quickLiftUrl bigChain, matching
the pattern getGenePredForPositionSql already uses.
- Suppress the mRNA/Genomic Alignments block and its trailing <hr> for
quickLifted refGene / ncbiRefSeq* clicks. The PSLs come back in source
coords and the htcCdnaAli links don't line up with the destination window.
- getAlignmentsTName: use sqlGetDatabase(conn) rather than global `database`
so split-table resolution looks up the right db.
- printGeneCards: take a db argument; callers pass srcDb so the GeneCards
link renders on quickLifted pages (the "startsWith hg" check was matching
hub_NNN_hs1 as false).
- geneReviewsClick.c prGRShortRefGene: take a struct sqlConnection * rather
than opening its own on `database` (hub_NNN_hs1 -> Unknown database abort).
Callers in prRefGeneInfo and doOmimGene2 pass their existing source-db
conn, so the Related GeneReviews line now shows on both native and
quickLifted refGene pages.
Verified end-to-end on hgwdev-braney with hg38 -> hs1 quickLift of the
refSeqComposite: ncbiRefSeqCurated and refGene clicks on SHH now render
the full doNcbiRefSeq / doRefGene details (RefSeq / Status / Description
/ Synonyms / OMIM / Protein / HGNC / Entrez Gene / GeneCards / AceView /
Summary / Position / Gene Symbol); Predicted mRNA and Predicted Protein
links return destination-derived sequences; Genomic Sequence reaches the
Get-DNA-in-window page; Ctrl/Cmd+drag zoom no longer ends up with an
HTML error page inside the zoom dialog. Non-quickLifted hg38 refSeq
details are unchanged (alignments still shown, GeneReviews still present).
The duplicate-subtracks symptom from the ticket's step (i) is not
addressed here -- it's an architectural consequence of the shared
`refSeqComposite` cart key applying to both the destination's native
composite and the quickLift hub's composite, and needs cart-scoping
work in quickLift v2.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- src/hg/htdocs/goldenPath/help/bigMaf.html
- lines changed 4, context: html, text, full: html, text
cc610239716fe32f9c774d98a71f75e8c6b5fba3 Tue Apr 21 17:23:50 2026 -0700
mafToBigMafSummary: new utility that emits bed3+4 input ready for bedToBigBed -as=mafSummary.as, replacing the hgLoadMafSummary -test / cut -f2- / sort hack documented in bigMaf.html. Companion to mafToBigMaf. The summary scoring/merging logic is intentionally duplicated from hgLoadMafSummary.c (see header comment) — that code is stable and refactoring would force retesting all the makedocs that call hgLoadMafSummary. Also fixes a bug in the duplicated copy of mafSplitSrcGetChrom: the original errAborts on plain 'hg38.chrY' style master src because of an inverted differentString check; rewritten with cleaner correct logic. Updates bigMaf.html and trackDb/trackDbLibrary.shtml to reference the new tool. refs #37404
- src/hg/htdocs/goldenPath/help/trackDb/trackDbLibrary.shtml
- lines changed 2, context: html, text, full: html, text
cc610239716fe32f9c774d98a71f75e8c6b5fba3 Tue Apr 21 17:23:50 2026 -0700
mafToBigMafSummary: new utility that emits bed3+4 input ready for bedToBigBed -as=mafSummary.as, replacing the hgLoadMafSummary -test / cut -f2- / sort hack documented in bigMaf.html. Companion to mafToBigMaf. The summary scoring/merging logic is intentionally duplicated from hgLoadMafSummary.c (see header comment) — that code is stable and refactoring would force retesting all the makedocs that call hgLoadMafSummary. Also fixes a bug in the duplicated copy of mafSplitSrcGetChrom: the original errAborts on plain 'hg38.chrY' style master src because of an inverted differentString check; rewritten with cleaner correct logic. Updates bigMaf.html and trackDb/trackDbLibrary.shtml to reference the new tool. refs #37404
- src/hg/inc/quickLift.h
- lines changed 7, context: html, text, full: html, text
81d00f3eec6ea6978c9a71ed6a48c84a0bd0c987 Wed Apr 22 14:51:08 2026 -0700
hgFind: remap bigBed search hits from source to destination coords when the track is quickLifted. Previously a search for e.g. "BRCA2" on a quickLifted hub (hg38 tracks displayed on HG02257.pat) returned hits at hg38 chr13 coordinates; clicking the result errored with "Sorry, couldn't locate chr13:... in <dest>". Adds quickLiftLiftPos() in hg/lib/quickLift.c, which reads the source->dest liftOverChainFile and calls liftOverRemapRange. Called from bigBedIntervalListToHgPositions in hg/lib/bigBedFind.c whenever tdb has quickLiftUrl/quickLiftDb; hits that don't map through the chain are dropped. refs #36340
- src/hg/lib/bigBedFind.c
- lines changed 27, context: html, text, full: html, text
81d00f3eec6ea6978c9a71ed6a48c84a0bd0c987 Wed Apr 22 14:51:08 2026 -0700
hgFind: remap bigBed search hits from source to destination coords when the track is quickLifted. Previously a search for e.g. "BRCA2" on a quickLifted hub (hg38 tracks displayed on HG02257.pat) returned hits at hg38 chr13 coordinates; clicking the result errored with "Sorry, couldn't locate chr13:... in <dest>". Adds quickLiftLiftPos() in hg/lib/quickLift.c, which reads the source->dest liftOverChainFile and calls liftOverRemapRange. Called from bigBedIntervalListToHgPositions in hg/lib/bigBedFind.c whenever tdb has quickLiftUrl/quickLiftDb; hits that don't map through the chain are dropped. refs #36340
- src/hg/lib/hubConnect.c
- lines changed 31, context: html, text, full: html, text
6d37e3250000dee12e193601c4cdbae21e4d099b Mon Apr 20 14:59:37 2026 -0700
make assumesHub session portability work for assembly hubs: when the current db is hub_<id>_<genome> and the hub's id differs from the local hubStatus id, remap the db cart variable and any db-keyed cart vars (e.g. position.<db>) along with the hub_<id>_* track settings that were already being renamed. refs #34986
- src/hg/lib/hui.c
- lines changed 39, context: html, text, full: html, text
5aed2d465f12c3b82dbb6ae78b3bf5529fd0a2ba Mon Apr 20 17:13:12 2026 -0700
hgc/hgTrackUi: populate quickLift source track description when the source assembly is a hub or GenArk. getTrackHtml() had an empty TODO branch for trackHubDatabase(db) || isGenArk(db); wire it up to open the source hub (via the connected hub or genarkUrl), load its trackDb list, find the track by bare name, and call trackHubAddDescription to fill tdb->html. refs #37389
- src/hg/lib/quickLift.c
- lines changed 36, context: html, text, full: html, text
81d00f3eec6ea6978c9a71ed6a48c84a0bd0c987 Wed Apr 22 14:51:08 2026 -0700
hgFind: remap bigBed search hits from source to destination coords when the track is quickLifted. Previously a search for e.g. "BRCA2" on a quickLifted hub (hg38 tracks displayed on HG02257.pat) returned hits at hg38 chr13 coordinates; clicking the result errored with "Sorry, couldn't locate chr13:... in <dest>". Adds quickLiftLiftPos() in hg/lib/quickLift.c, which reads the source->dest liftOverChainFile and calls liftOverRemapRange. Called from bigBedIntervalListToHgPositions in hg/lib/bigBedFind.c whenever tdb has quickLiftUrl/quickLiftDb; hits that don't map through the chain are dropped. refs #36340
- src/hg/lib/trackHub.c
- lines changed 2, context: html, text, full: html, text
8c8823d9a87b6046094577a808dda4ed4172b416 Thu Apr 23 11:09:48 2026 -0700
Make quickLifted GENCODE tracks usable: click details, position links, coloring. refs #36059
- Re-vet wgEncodeGencode* in trackHub.c:isVetted() so the quickLift hub
no longer emits `avoidHandler on` for GENCODE children. Without this,
hgc bypasses findNameBasedHandler and doGencodeGene is never reached,
so the details page falls through to the generic showGenePos output.
- In gencodeClick.c doGencodeGene/helpers, use quickLiftDb for the
MySQL connection (the attrs/tag/pubMed/refSeq/uniProt tables live in
the source assembly), use trackHubSkipHubName(tdb->track) for the
genePred table name and the Basic/Comp/PseudoGene/PolyA prefix
dispatch checks, and teach isGrcHuman/isGrcH37Native to consult the
source db — otherwise the page errAborted with
"BUG: gencodeClick on wrong database: hub_NNNNN_hs1".
- Lift the Position values (transcript + gene bounds, 2-way pseudo,
PolyA) through the quickLift chain before printing, so the details
page shows destination-assembly coords and the Position link lands
at a window that actually contains the gene.
- htcDnaNearGene (hgc.c): when quickLifted, lift seqName/winStart/winEnd
back to source coords before hgSeqItemsInRange. The prior code
pointed the query at the source-assembly table but still passed the
destination window, so the "Genomic Sequence from assembly" flow
returned "No results returned from query." No longer reachable from
the GENCODE details page (doGencodeGene writes its own Sequences
table) but still hit by other quickLifted genePred tracks.
- simpleTracks.c genePredItemClassColor: the hTableExists() guard was
checking `database` (the destination hub db like hub_NNNNN_hs1) even
though the MySQL conn was already routed to liftDb; the lookup was
skipped and every item fell back to tg->ixColor, rendering all
black. Check `db` instead so the gClass_* palette (coding / nonCoding
/ pseudo / problem) is applied.
Verified end-to-end on hgwdev-braney: Gerardo's SHH test case
(ENST00000297261.7) and Basic/Comp/PseudoGene/PolyA subtracks; no
regression on the non-quickLifted hg38 click.
- lines changed 6, context: html, text, full: html, text
7120a354ec4870b3bc2112c384bdb0af837ed44e Thu Apr 23 14:12:36 2026 -0700
hgc: make quickLifted NCBI RefSeq / UCSC RefSeq click details work. refs #36125
- trackHub.c isVetted(): accept refGene, ncbiRefSeq* subtracks, and ncbiOrtho
so the generated quickLift hub.txt doesn't emit 'avoidHandler on' for them.
Without this, hgc skips findNameBasedHandler and the detail click falls
through to genericClickHandler, showing none of the rich RefSeq fields.
- hgc.c findNameBasedHandler: when the tdb has 'quickLifted on', strip the
hub_NNN_ prefix from the dispatch table before comparisons so refGene /
ncbiRefSeq* match their native handlers.
- doNcbiRefSeq / doRefGene: route hAllocConn to quickLiftDb (source), use
trackHubSkipHubName for track/table name comparisons, and pass srcDb into
replaceInUrl, hTableExists, AceView / MGIid / jaxOrtholog / hg-prefix
checks -- otherwise these paths errAborted with "Unknown database
hub_NNN_<db>" on a quickLifted click.
- printRefSeqInfo / prRefGeneInfo / gbCdnaGetVersion: use sqlGetDatabase(conn)
rather than the global `database` for host-db checks.
- Predicted Protein / Predicted mRNA links for quickLifted tracks now point
at htcTranslatedPredMRna / htcGeneMrna so the sequences come from the
destination genome at the lifted exon coordinates, rather than the
NCBI-authored refPep / seqNcbiRefSeq extFiles on the source. Native
behavior is unchanged.
- showGenePos: fetch via quickLiftSql + calcLiftOverGenePreds when the track
is quickLifted so the Position line is in destination coordinates. The
swapped chainHash comes from the track's quickLiftUrl bigChain, matching
the pattern getGenePredForPositionSql already uses.
- Suppress the mRNA/Genomic Alignments block and its trailing <hr> for
quickLifted refGene / ncbiRefSeq* clicks. The PSLs come back in source
coords and the htcCdnaAli links don't line up with the destination window.
- getAlignmentsTName: use sqlGetDatabase(conn) rather than global `database`
so split-table resolution looks up the right db.
- printGeneCards: take a db argument; callers pass srcDb so the GeneCards
link renders on quickLifted pages (the "startsWith hg" check was matching
hub_NNN_hs1 as false).
- geneReviewsClick.c prGRShortRefGene: take a struct sqlConnection * rather
than opening its own on `database` (hub_NNN_hs1 -> Unknown database abort).
Callers in prRefGeneInfo and doOmimGene2 pass their existing source-db
conn, so the Related GeneReviews line now shows on both native and
quickLifted refGene pages.
Verified end-to-end on hgwdev-braney with hg38 -> hs1 quickLift of the
refSeqComposite: ncbiRefSeqCurated and refGene clicks on SHH now render
the full doNcbiRefSeq / doRefGene details (RefSeq / Status / Description
/ Synonyms / OMIM / Protein / HGNC / Entrez Gene / GeneCards / AceView /
Summary / Position / Gene Symbol); Predicted mRNA and Predicted Protein
links return destination-derived sequences; Genomic Sequence reaches the
Get-DNA-in-window page; Ctrl/Cmd+drag zoom no longer ends up with an
HTML error page inside the zoom dialog. Non-quickLifted hg38 refSeq
details are unchanged (alignments still shown, GeneReviews still present).
The duplicate-subtracks symptom from the ticket's step (i) is not
addressed here -- it's an architectural consequence of the shared
`refSeqComposite` cart key applying to both the destination's native
composite and the quickLift hub's composite, and needs cart-scoping
work in quickLift v2.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- src/hg/logCrawl/parseQuickLiftLogs/parseQuickLiftLogs
- lines changed 211, context: html, text, full: html, text
bd2a9f1bb1cd2b0f8881a4ab4e5385455e8e69aa Thu Apr 23 11:26:06 2026 -0700
add parseQuickLiftLogs to kent/src
- src/hg/utils/mafToBigMafSummary/mafToBigMafSummary.c
- lines changed 273, context: html, text, full: html, text
cc610239716fe32f9c774d98a71f75e8c6b5fba3 Tue Apr 21 17:23:50 2026 -0700
mafToBigMafSummary: new utility that emits bed3+4 input ready for bedToBigBed -as=mafSummary.as, replacing the hgLoadMafSummary -test / cut -f2- / sort hack documented in bigMaf.html. Companion to mafToBigMaf. The summary scoring/merging logic is intentionally duplicated from hgLoadMafSummary.c (see header comment) — that code is stable and refactoring would force retesting all the makedocs that call hgLoadMafSummary. Also fixes a bug in the duplicated copy of mafSplitSrcGetChrom: the original errAborts on plain 'hg38.chrY' style master src because of an inverted differentString check; rewritten with cleaner correct logic. Updates bigMaf.html and trackDb/trackDbLibrary.shtml to reference the new tool. refs #37404
- src/hg/utils/mafToBigMafSummary/makefile
- lines changed 3, context: html, text, full: html, text
cc610239716fe32f9c774d98a71f75e8c6b5fba3 Tue Apr 21 17:23:50 2026 -0700
mafToBigMafSummary: new utility that emits bed3+4 input ready for bedToBigBed -as=mafSummary.as, replacing the hgLoadMafSummary -test / cut -f2- / sort hack documented in bigMaf.html. Companion to mafToBigMaf. The summary scoring/merging logic is intentionally duplicated from hgLoadMafSummary.c (see header comment) — that code is stable and refactoring would force retesting all the makedocs that call hgLoadMafSummary. Also fixes a bug in the duplicated copy of mafSplitSrcGetChrom: the original errAborts on plain 'hg38.chrY' style master src because of an inverted differentString check; rewritten with cleaner correct logic. Updates bigMaf.html and trackDb/trackDbLibrary.shtml to reference the new tool. refs #37404
- src/hg/utils/mafToBigMafSummary/tests/expected/testDot.bed
- lines changed 17, context: html, text, full: html, text
cc610239716fe32f9c774d98a71f75e8c6b5fba3 Tue Apr 21 17:23:50 2026 -0700
mafToBigMafSummary: new utility that emits bed3+4 input ready for bedToBigBed -as=mafSummary.as, replacing the hgLoadMafSummary -test / cut -f2- / sort hack documented in bigMaf.html. Companion to mafToBigMaf. The summary scoring/merging logic is intentionally duplicated from hgLoadMafSummary.c (see header comment) — that code is stable and refactoring would force retesting all the makedocs that call hgLoadMafSummary. Also fixes a bug in the duplicated copy of mafSplitSrcGetChrom: the original errAborts on plain 'hg38.chrY' style master src because of an inverted differentString check; rewritten with cleaner correct logic. Updates bigMaf.html and trackDb/trackDbLibrary.shtml to reference the new tool. refs #37404
- src/hg/utils/mafToBigMafSummary/tests/expected/testPipe.bed
- lines changed 17, context: html, text, full: html, text
cc610239716fe32f9c774d98a71f75e8c6b5fba3 Tue Apr 21 17:23:50 2026 -0700
mafToBigMafSummary: new utility that emits bed3+4 input ready for bedToBigBed -as=mafSummary.as, replacing the hgLoadMafSummary -test / cut -f2- / sort hack documented in bigMaf.html. Companion to mafToBigMaf. The summary scoring/merging logic is intentionally duplicated from hgLoadMafSummary.c (see header comment) — that code is stable and refactoring would force retesting all the makedocs that call hgLoadMafSummary. Also fixes a bug in the duplicated copy of mafSplitSrcGetChrom: the original errAborts on plain 'hg38.chrY' style master src because of an inverted differentString check; rewritten with cleaner correct logic. Updates bigMaf.html and trackDb/trackDbLibrary.shtml to reference the new tool. refs #37404
- src/hg/utils/mafToBigMafSummary/tests/input/testDot.maf
- lines changed 74, context: html, text, full: html, text
cc610239716fe32f9c774d98a71f75e8c6b5fba3 Tue Apr 21 17:23:50 2026 -0700
mafToBigMafSummary: new utility that emits bed3+4 input ready for bedToBigBed -as=mafSummary.as, replacing the hgLoadMafSummary -test / cut -f2- / sort hack documented in bigMaf.html. Companion to mafToBigMaf. The summary scoring/merging logic is intentionally duplicated from hgLoadMafSummary.c (see header comment) — that code is stable and refactoring would force retesting all the makedocs that call hgLoadMafSummary. Also fixes a bug in the duplicated copy of mafSplitSrcGetChrom: the original errAborts on plain 'hg38.chrY' style master src because of an inverted differentString check; rewritten with cleaner correct logic. Updates bigMaf.html and trackDb/trackDbLibrary.shtml to reference the new tool. refs #37404
- src/hg/utils/mafToBigMafSummary/tests/input/testPipe.maf
- lines changed 74, context: html, text, full: html, text
cc610239716fe32f9c774d98a71f75e8c6b5fba3 Tue Apr 21 17:23:50 2026 -0700
mafToBigMafSummary: new utility that emits bed3+4 input ready for bedToBigBed -as=mafSummary.as, replacing the hgLoadMafSummary -test / cut -f2- / sort hack documented in bigMaf.html. Companion to mafToBigMaf. The summary scoring/merging logic is intentionally duplicated from hgLoadMafSummary.c (see header comment) — that code is stable and refactoring would force retesting all the makedocs that call hgLoadMafSummary. Also fixes a bug in the duplicated copy of mafSplitSrcGetChrom: the original errAborts on plain 'hg38.chrY' style master src because of an inverted differentString check; rewritten with cleaner correct logic. Updates bigMaf.html and trackDb/trackDbLibrary.shtml to reference the new tool. refs #37404
- src/hg/utils/mafToBigMafSummary/tests/makefile
- lines changed 20, context: html, text, full: html, text
cc610239716fe32f9c774d98a71f75e8c6b5fba3 Tue Apr 21 17:23:50 2026 -0700
mafToBigMafSummary: new utility that emits bed3+4 input ready for bedToBigBed -as=mafSummary.as, replacing the hgLoadMafSummary -test / cut -f2- / sort hack documented in bigMaf.html. Companion to mafToBigMaf. The summary scoring/merging logic is intentionally duplicated from hgLoadMafSummary.c (see header comment) — that code is stable and refactoring would force retesting all the makedocs that call hgLoadMafSummary. Also fixes a bug in the duplicated copy of mafSplitSrcGetChrom: the original errAborts on plain 'hg38.chrY' style master src because of an inverted differentString check; rewritten with cleaner correct logic. Updates bigMaf.html and trackDb/trackDbLibrary.shtml to reference the new tool. refs #37404
- src/hg/utils/makefile
- lines changed 1, context: html, text, full: html, text
cc610239716fe32f9c774d98a71f75e8c6b5fba3 Tue Apr 21 17:23:50 2026 -0700
mafToBigMafSummary: new utility that emits bed3+4 input ready for bedToBigBed -as=mafSummary.as, replacing the hgLoadMafSummary -test / cut -f2- / sort hack documented in bigMaf.html. Companion to mafToBigMaf. The summary scoring/merging logic is intentionally duplicated from hgLoadMafSummary.c (see header comment) — that code is stable and refactoring would force retesting all the makedocs that call hgLoadMafSummary. Also fixes a bug in the duplicated copy of mafSplitSrcGetChrom: the original errAborts on plain 'hg38.chrY' style master src because of an inverted differentString check; rewritten with cleaner correct logic. Updates bigMaf.html and trackDb/trackDbLibrary.shtml to reference the new tool. refs #37404
- src/utils/qa/quickLiftBench/README.md
- lines changed 147, context: html, text, full: html, text
ff2dc690270f4e155d6345af821bc8a2c197e667 Fri Apr 24 17:58:03 2026 -0700
quickLiftBench: hgTracks render-time benchmark for quickLift, refs #37445
Drives YAML-configured cases against hgTracks with measureTiming=1, parses
per-track loadTime/drawTime out of printTrackTiming() output, writes per-
iteration TSV plus a per-(case, position) summary with median/p90 and
lifted/native ratios. Supports same-hub source-vs-dest, track-pair across
assemblies, and lift-on/off side-by-side hub comparisons. Output backs the
benchmark numbers for the quickLift Bioinformatics paper (#36829).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- src/utils/qa/quickLiftBench/cases.yaml
- lines changed 106, context: html, text, full: html, text
ff2dc690270f4e155d6345af821bc8a2c197e667 Fri Apr 24 17:58:03 2026 -0700
quickLiftBench: hgTracks render-time benchmark for quickLift, refs #37445
Drives YAML-configured cases against hgTracks with measureTiming=1, parses
per-track loadTime/drawTime out of printTrackTiming() output, writes per-
iteration TSV plus a per-(case, position) summary with median/p90 and
lifted/native ratios. Supports same-hub source-vs-dest, track-pair across
assemblies, and lift-on/off side-by-side hub comparisons. Output backs the
benchmark numbers for the quickLift Bioinformatics paper (#36829).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- src/utils/qa/quickLiftBench/quickLiftBench.py
- lines changed 510, context: html, text, full: html, text
ff2dc690270f4e155d6345af821bc8a2c197e667 Fri Apr 24 17:58:03 2026 -0700
quickLiftBench: hgTracks render-time benchmark for quickLift, refs #37445
Drives YAML-configured cases against hgTracks with measureTiming=1, parses
per-track loadTime/drawTime out of printTrackTiming() output, writes per-
iteration TSV plus a per-(case, position) summary with median/p90 and
lifted/native ratios. Supports same-hub source-vs-dest, track-pair across
assemblies, and lift-on/off side-by-side hub comparisons. Output backs the
benchmark numbers for the quickLift Bioinformatics paper (#36829).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- src/utils/redmineCli
- lines changed 6, context: html, text, full: html, text
c5057c7b3735ac3688a7703f97ead937b3c7c0a6 Thu Apr 23 14:24:06 2026 -0700
redmineCli: let 'create' accept tracker and status by name
The existing resolve_tracker() / resolve_status() helpers already accepted
either a name ("To Do", "QA Ready") or a numeric ID, and the list / update
subcommands wired them up. The create subcommand declared --tracker and
--status as type=int, which rejected the name forms that the redmine skill
documents as working.
Drop the type=int, route args.tracker / args.status through the resolvers
in cmd_create, and update the help text. Numeric IDs continue to work
because the resolvers pass digit strings through.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- lines changed 2, context: html, text, full: html, text
73169097327bcbfca570a98a34076c25ac069270 Fri Apr 24 08:08:52 2026 -0700
redmineCli: fix resolve_status crash when --status defaults to int
The default for create's --status is the int STATUS_NEW=1. Without
type=int on the argparse option, resolve_status received an int and
crashed on name_or_id.isdigit(). Wrap in str() to match resolve_tracker.
switch to commits view, user index