992aeef92fea7be25a2acd916578898649212a32
braney
Mon Sep 7 11:31:07 2026 -0700
quickLift: gate the alignment lift behind an hg.conf flag, refs #38249
Add browser.quickLiftAlignments, default FALSE, so the alignment lift ships
dark and a machine turns it on with browser.quickLiftAlignments=on. It sits
beside browser.quickLift, the gate on the rest of the feature.
quickLiftAlignmentsEnabled() in hg/lib/quickLift.c is the one read, and
validateOneTdb in hg/lib/trackHub.c is the one place that asks it, before an
alignment track may enter a quickLift hub. That is the only door:
quickLiftUrl and quickLiftDb, the pair every lift path keys off, are written
by the quickLift hub writer and by nothing else, so with the flag off an
alignment track never gets them and the lifting, drawing and details code
behind them cannot be reached. pslTrack.c, chainTrack.c, wigMafTrack.c,
bigBedTrack.c and hgc.c are unchanged.
With the flag off hgConvert lists psl, bigPsl, chain, bigChain, maf, bigMaf
and wigMaf tracks in its "type is not supported by QuickLift" table, which is
what it did before this work. A hub built while the flag was on keeps working
after it is turned off, since its stanzas are already in the hub file in
trash, so this holds the feature back from people who have not used it rather
than switching off a session that has.
Read the hg.conf half with a literal cfgOptionBooleanDefault rather than
cartOrCfgOption so harvestHgConf.py can see it; a cart variable of the same
name still overrides it. Register the flag in hgConfCatalog.py with
role="gate" so the sunset report tracks it, and turn it on in
confs/hgwdev.hg.conf.
diff --git confs/hgwdev.hg.conf confs/hgwdev.hg.conf
index 92b6ba0521d..23574343110 100644
--- confs/hgwdev.hg.conf
+++ confs/hgwdev.hg.conf
@@ -1,569 +1,572 @@
#hgMirror does not make sense and does not work on hgwdev. You cannot copy over
#tracks from hgdownload to hgMirror as just a normal apache user.
#However, it can be useful for ML questions to find out how much disk space a
#track requires
#allowHgMirror=1
#
#########################################################
# Config file for the UCSC Human Genome server
#
# the format is in the form of name/value pairs
# written 'name=value' (note that there is no space between
# the name and its value.
#
# backup recovery 17 November 2009
#
###########################################################
include hg.conf.private
allowHgMirror=1
# temporary setting for QA, pending a better way to package dot
# with the browser (static binary?)
graphvizPath=/usr/local/apache/cgi-bin/loader/dot_static
# Transient setting that activates link on hgTracks and
# hgGateway for ENCODE/modENCODE survey (March 2010).
# Remove survey setting to retire the survey.
#survey=http://www.surveymonkey.com/s/XV666V5
#surveyLabel=Test Survey
# survey=http://www.surveymonkey.com//s/XJF93F5
# surveyLabel=Apply for free workshop
# survey=http://genome-test.soe.ucsc.edu/goldenPath/help/image.html
# surveyLabel=
Trouble viewing the browser? Reload this web page.
# 2012-03-16:
# survey=https://www.surveymonkey.com/s/ucsc2012
# surveyLabel=Survey. Help us improve the Browser.
# survey=https://www.bit.ly/ucscTraining
# surveyLabel=More on-site workshops available!
# survey=/index.html#newGateway
# surveyLabel=New User Interface Coming May 10, 2016!
#survey=https://www.surveymonkey.com/r/QYVSXKW
#surveyLabel=Take our feedback survey!
#surveyLabelImage=../images/surveyButton.jpg
#survey=http://bit.ly/ucscTraining
#surveyLabel= Request onsite workshops
#surveyLabel=User Tips
#survey=http://genome.ucsc.edu/blog/?s=tips
# Similar to a survey link, but you can add a piece of html and configure everything yourself
#hgTracksNoteHtml=
Some text
# if your MySQL system is configured for a different socket connection,
# use the following variables to override the MySQL defaults:
# db.socket=/var/lib/mysql/mysql.sock
# db.port=3306
# *!# NOTE: the port override will only work when host is *not* localhost
# when localhost is used, MySQL may connect via shared memory
# connections and not via TCP/IP socket ports
# if you want a different default species selection on the Gateway
# page, change this default Human to one of the genomes from the
# defaultDb table in hgcentral:
# hgsql -e "select genome from defaultDb;" hgcentral
# If you need a different version of that specific genome, change
# the defaultDb table entry, for example, a different mouse genome
# version as default:
# hgsql -e 'update defaultDb set name="mm8" where genome="Mouse"
# then this defaultGenome would read: defaultGenome=Mouse
#
#defaultGenome=Human
# tracks display width has a default maximum width of 5000 pixels
# override that limit with a larger number for maxDisplayPixelWidth
maxDisplayPixelWidth=25600
# trackDb table to use. A simple value of `trackDb' is normally sufficient.
# In general, the value is a comma-separated list of trackDb format tables to
# search. This supports local tracks combined with a mirror of the trackDb
# table from UCSC. The names should be in the form `trackDb_suffix'. This
# implies a parallel hgFindSpec format search table exists in the form
# hgFindSpec_suffix. The specified trackDb tables are searched in the order
# specified, with the first occurance of a track being used. You may associate
# trackDb/hgFindSpec tables with other instances of genome databases using a
# specification of profile:trackDbTbl, where profile is the name of a
# databases profile in hg.conf, and trackDbTbl is the name of the table in the
# remote databases.
#
db.trackDb=trackDb
#db.trackDb=trackDb_local,trackDb
#db.trackDb=trackDb,remoteDbs:trackDb
# track group table definitions. This is a comma-seperate list similar to
# db.trackDb that defines the track group tables. Database profiles
# may alow be included using the syntax profile:grpTbl.
#db.grp=grp
#db.grp=grp_local,grp
#db.grp=grp,remoteDbs:grp
# New browser function as of May 2012, using stand alone hgLogin CGI
# login system to replace authentication service provided by
# genomewiki.
# To enable the hgLogin function, set the login.systemName
# as below. Note, do not set the values of the two cookies to other
# value.
login.systemName=hgLogin CGI
login.browserName=genome-test Genome Browser
login.browserAddr=http://genome-test.soe.ucsc.edu
login.mailSignature=UCSC Genome Browser Administrator
login.mailReturnAddr=genome-www@soe.ucsc.edu
#Parameters for suggestion form
suggest.mailSignature=UCSC Genome Browser Staff
suggest.mailReturnAddr=genome-www@soe.ucsc.edu
suggest.browserName=UCSC Genome Browser
# wiki track removed 2018-10-05 - Hiram
#These wiki-lines are involved in hgLogin
wiki.userNameCookie=DEVwikidb_mw1_UserName
wiki.loggedInCookie=DEVwikidb_mw1_UserID
# self destruct option June 2011. To avoid problem of lost long running
# CGI processes. Default CGI expiration time is 20 minutes,
# enable cgiExpireMinutes to change that default.
# A time of 0 indicates no expiration time. positive integer only
# Discussed in engineering meeting 12/13/21. Disabling to mimic hgwbeta/RR
#browser.cgiExpireMinutes=5
# default for cgiTime printout to Apache error_log is "yes"
# uncomment this cgiTime=no option to turn off the printouts to error_log
# browser.cgiTime=no
# New browser function as of March 2007. Future browser code will
# have this on by default, and can be turned off with =off
# Initial release of this function requires it to be turned on here.
browser.indelOptions=on
#
# There are additional fonts available, not all are perfect.
# Uncomment this to see extra font selections in the configure page
# fonts.extra=yes
# Turn this back on after people look at genome-test
# browser.style=../style/genome-test.css
# add config option to let users personalize background and style
# of the browser. Setting is saved in the cart and can be set from
# the configure page.
# format is browser.theme.=[,]
# background file is optional
#browser.theme.Default=<>
#browser.theme.Classic=theme-classic.css
#browser.theme.Sans_Serif=theme-modern.css
#browser.theme.Light_Blue=theme-lightBlue.css
#browser.theme.Dark=theme-dark.css
#
# Change this default documentRoot if different in your installation,
# to allow some of the browser cgi binaries to find help text files
browser.documentRoot=/usr/local/apache/htdocs
# optional location of grepIndex files
# braney commented out the following like on 8/29/2012 for testing purposes
grepIndex.genbank=/data/tmp/grepIndex
grepIndex.default=/gbdb
# new option for track reording functions, August 2006
hgTracks.trackReordering=on
# directory for temporary bbi file caching, default is /tmp/udcCache
# see also: README.udc
udc.cacheDir=../trash/udcCache
# Mount point for udcFuse read-only filesystem (must be absolute path!):
#udcFuse.mountPoint=/data/apache/trash/udcFuse
udc.localDir=/gbdbNOTEXISTS
#udc.localDir=/gbdbNOT
#udc.localDir=/gbdb
# Parallel fetching of remote network resources using bigDataUrl such as trackHubs and customTracks
# how many threads to use (set to 0 to disable)
parallelFetch.threads=100
# how long to wait in seconds for parallel fetch to finish
parallelFetch.timeout=45
# Directory where a static cache of public hub files exists to
# support hub search.
#hgHubConnect.cacheDir=../trash/hgHubConnect/hubCrawl
# An include directive can be used to read text from other files. this is
# especially useful when there are multiple browsers hidden behind virtual
# hosts. The path to the include file is either absolute or relative to
# the including file (*not* relative to the current direct directory).
# include ../cgi-bin-default/hg.conf
# A delete directive can be used to delete previouly defined values.
# this is useful in conjunction with include when an undefined
# value has different meaning than an empty value:
# delete archivecentral.db [othervars ...]
# Option to disable the "All Tables" query in the table browser. Useful if
# one wants to be restrictive about what tables can be seen.
# hgta.disableAllTables=yes
# If this option is enabled, the browser CGIs will attempt to generate a an
# stack traceback on error and dump it to stderr (which is normally captured
# in the web server error log). This requires the pstack package to be
# install, which is available on for unix and linux systems. If
# signalsHandler is enabled, the stack will also be printed when a signal
# indicating an error occurs.
browser.dumpStack=on
# log signals
signalsHandler=on
# These settings enable geographic allele frequency images on the
# details pages for the HGDP Allele Frequency (hgdpGeo) track.
# (HGDP = Human Genome Diversity Project)
# Programs required for per-SNP geographic maps of HGDP population
# allele frequencies:
hgc.psxyPath=/hive/data/outside/GMT4.3.1/bin/psxy
hgc.ps2rasterPath=/hive/data/outside/GMT4.3.1/bin/ps2raster
hgc.ghostscriptPath=/usr/bin/ghostscript
# Customize your downloads.server machine name here
downloads.server=hgdownload-test.soe.ucsc.edu
# Temporary flag to help disable new custom track validator if needed
# If you turn the flag off, it reverts to the old validator
# 2021-12-13
# Since we did not get this pushed to RR,
# there has been push back to disable it on hgwdev to help
# with consistency between ct loading results on RR andhgwdev.
#newCustomTrackValidate=on
# PROXY
# enable http(s) proxy support in net.c
#httpProxy=http://someProxyServer:3128
#httpsProxy=http://someProxyServer:3128
#ftpProxy=ftp://127.0.0.1:2121
# if proxy server needs BASIC authentication
#httpProxy=http://user:password@someProxyServer:3128
#httpsProxy=http://user:password@someProxyServer:3128
# if some domain suffixes should not be proxied:
#noProxy=ucsc.edu,mit.edu,localhost,127.0.0.1
# if you need to debug your proxy config
#logProxy=on
# writes messages to stderr every time proxy is used for ftp, http, or https.
##
# Database profiles
##
# The dbProfile facility provides a limited mechanism for access tracks from
# multiple database servers. This is particularly useful when a mirror server
# contains the majority of the track data needs to be shared by multiple
# groups with a small number of locally produced tracks that they the need to
# keep isolated from the other groups. A dbProfile associates a MySQL host,
# user, and password with a dbProfile name. To define a dbProfile named
# myProfile, define the hg.conf variables:
#
# myProfile.host
# myProfile.user
# myProfile.password
#
# The default profile is named `db', and is defined by the `db.*' variables
# described above. The `customTracks.*' and `central.*' variables also define
# profiles.
#
# Profiles can be associated with an entire genome databases or some types of
# tables. To associated with a database, myGenome with myProfile, define the
# variable:
# myGenome.profile=myProfile
#
# A dbProfile may be associated with a trackDb/hgFindSpec table pair or a grp
# table as described in the `db.trackDb' and `db.grp' variables above. To
# associate a particular track table, specify the "dbProfile" setting in the
# trackDb entry:
#
# track myTrack
# ...
# dbProfile myProfile
#
# Note that dbProfile only works on a small number of track types and is not
# well tested. In general, the dbProfile facility has not been widely use and
# may still contain bugs. The recommended approach for setting up a
# remote/local server pair is to use the default profile for the remote server
# with the majority of tracks, and use a non-default profile for local tracks
# and trackDb tables. A common configuration would be:
#db.host=oursharedhost
#db.user=readonly
#db.password=access
#
#myStuff.host=localhost
#myStuff.user=readonly
#myStuff.password=access
#
#db.trackDb=myStuff:trackDb,trackDb
#db.grp=myStuffgrp,grp
#
# set browser.javaScriptDir for per-developer javascript in trees that do NOT have their own DocumentRoot
# browser.javaScriptDir=js/
#
#tell hdb.c code that this is our development server
test.dev=on
# No Sql Injection settings
# values for level are ignore, logOnly, warn, abort
noSqlInj.level=abort
# values for dumpStack are on, off
noSqlInj.dumpStack=on
# HTTPS Certificate Check Settings are: abort warn log none
# currently log is the default
#httpsCertCheck=none
httpsCertCheck=log
# domains to whitelist, skip cert checking, space-separated list
httpsCertCheckDomainExceptions=
# useful for testing, presence of "noHardwiredExceptions" in the list here
# turns off the hardwired whitelist exceptions in https.c
#httpsCertCheckDomainExceptions=noHardwiredExceptions
# with wildcard for testing:
#httpsCertCheckDomainExceptions=noHardwiredExceptions *.upf.edu *.igh.cnrs.fr *.med.umich.edu
# Log visible tracks to error_log
trackLog=on
# location of CRAM reference sequences
cramRef=../userdata/cramCache
#showTableCache=tableList
# Make a custom track with BLAT results
#useBlatBigPsl=on
#JKSQL_TRACE=on
#
#This following turns on short links for hgSession, allowing the redirect.
hgSession.shortLink=on
# Separate directory for files that belong to saved sessions (hgSession).
# The path must be absolute (starts with /).
# This directory must be on the same filesystem as trash/ so hard links work.
# The purpose of this directory is to allow automated cleaning of old files
# from trash/ while keeping saved session files safe in a different location.
sessionDataDir=/data/apache/userdata/sessions
sessionDataDirOld=/data/apache/userdata
# Name prefix of 31 separate databases (one for each day of month, on same
# server as customTrash, using customTracks.* profile) for custom track
# database tables that belong to users' saved sessions, analogous to
# sessionDataDir setting for saved session files.
# The databases must be named as this prefix followed by {01, 02, 03, ... 31}.
# For example, if the value is "customData" then the databases are named
# customData01, customData02, ... customData31.
sessionDataDbPrefix=customData
# Allow the URL: /cgi-bin/hubApi to produce a WEB page
# otherwise, it redirects to the help page
# hubApi.allowHtml=on
# Setting speeds up the browser by caching large trackDb (such as big hubs)
# This setting became default in v495 for better mirror performance
#cacheTrackDbDir=../trash/trackDbCache
#cacheTrackDbDir=/dev/shm/trackDbCache
#cacheTrackDbDir=
cacheTrackDbDir=/data/trackDbCache
# Recommended track sets refs #25601
browser.recTrackSets=on
#browser.recTrackSetsDetectChange=on
### Testing mouse over display function 2020-10 - Hiram
#mouseOverEnabled=on
# Enable hgPhyloPlace:
hgPhyloPlaceEnabled=on
nextstrainHost=https://nextstrain.org
microbeTraceHost=https://microbetrace.cdc.gov
hgPhyloPlaceServerDir=/data/apache/userdata/hgPhyloPlace/genome-test
# Enable svg based bar charts
#svgBarChart=on
# Move multi-region button above image
#multiRegionButtonTop=on
# Related tracks
db.relatedTrack=relatedTrack
# prefix to genark hubs
### genarkHubPrefix=https://hgdownload.soe.ucsc.edu/hubs
### trying hosting from /gbdb/genark - 2025-02-06 - Hiram
genarkHubPrefix=/gbdb/genark
# Database specific settings
wuhCor1_TopLink=http://genome.ucsc.edu/goldenPath/help/covidBrowserIntro.html
wuhCor1_TopLinkLabel=Quick start guide
# Assembly-specific html (e.g. links to more info)
GCA_009914755.4_html=What is human CHM13-T2T?
### bottleneck delay multiplier for custom tracks, an integer >= 1
### useful range here is from 1 to about 10. This will hogExit
### robots that are continuously loading custom tracks.
customTracks.botCheckMult=3
### custom track submitted, additional penalty
### botCheckMult added penalty decay time
# 1 140 millis 14 seconds
# 2 225 millis 22 seconds
# 3 300 millis 30 seconds
# 4 375 millis 38 seconds
# 5 440 millis 45 seconds
# 6 525 millis 52 seconds
# 7 600 millis 60 seconds
#analytics.trackButtons=off
curatedHubPrefix=alpha
#canDupTracks=on
ignoreDefaultKnown=on
#hgTracksNoteHtml=Some text
# new GA4 key
analyticsKey=G-RT83HV74PS
# show a message when hgTracks takes longer than X seconds to load
warnSeconds=40
# use new mouseovers instead of title tags
showMouseovers=on
# we trust trackDb to know what tables and files exist on this machine
# so we won't check at start up
trustTrackDb=on
# limit memory to 20G
maxMem=21474836480
# are we able to do hgc in pop up dialogs, a checkbox
# on the configure page controls whether we actually will
#canDoHgcInPopUp=true
browser.exportedDataHubs=on
# Enables the grouping feature for track hubs
#trackHubsCanAddGroups=on
# see #33023
bigBedMaxItems=100000
# hubSpace related settings:
# show the hubSpace UI
storeUserFiles=true
# location of files stored by tusd
tusdDataDir=/tusd
tusdMountPoint=/data/tusd
# The tusd endpoint files are uploaded to
hubSpaceTusdEndpoint=https://hgwdev-hubspace.gi.ucsc.edu/files
# The web accessible location after tusd moves the files
# when an upload is completed
hubSpaceUrl=https://hgwdev.gi.ucsc.edu/hubspace
# let users create an api key on the hub development tab to use hubSpace from the command line
showHubApiKey=true
# Enables the QuickLift checkbox on hgConvert
browser.quickLift=on
+# Lets QuickLift lift alignment tracks too: psl, bigPsl, chain, bigChain, maf,
+# bigMaf and wigMaf. Refs #38249.
+browser.quickLiftAlignments=on
# Additional settings for QuickLift
quickLift.lengthLimit=100000
quickLift.insColor=64,127,0,64
quickLift.delColor=0,0,127,64
quickLift.doubleColor=127,127,127,64
quickLift.mismatchColor=255,0,0,64
# Increases the number of items that can be queried from a BAM file
BAMMaxItems=60000
# new flag for testing rm32751 turn on automatic creation of custom tracks from hgBlat results.
autoBlatBigPsl=on
# you can also comment it out and test that it behaves the old way as expected.
# BLAT shows locus name of the match #35993
blatShowLocus=on
#blatShowLocus=off
# refs #37893 (new hgBlat results page): show the invitation banner on the CLASSIC BLAT results
# page so users can opt in to the new interactive results table. The new page itself is reached
# via that banner or a blatNewPage=1 link and remembered per-user in the cart; this flag only
# controls whether the invite banner appears. Off by default while the page is being tested.
blatNewPageBanner=on
# refs #37893: when hgBlat builds a new BLAT results custom track, decide what happens to the
# user's PREVIOUS BLAT results tracks so they don't pile up in the browser. Values:
# keep (default) leave earlier BLAT tracks visible
# hide set earlier BLAT tracks to hidden so only the newest result shows
# delete remove earlier BLAT tracks entirely
# Only affects tracks tagged as BLAT results (trackDb setting blatResult=on), and only at track
# creation time - never when the user follows the result links.
blatOldTracks=hide
# refs #38086: put BLAT result custom tracks in their own "BLAT Results" track group (with a
# "Delete all" button) instead of Custom Tracks, and name headerless queries by size + top-hit
# gene (e.g. "360bp SOD1") instead of "blat YourSeq". Off by default while in QA.
blatResultsGroup=on
# Enables genark hubs to appear in assembly dropdowns for hgConvert/hgLiftOver
genarkLiftOver=on
# Enables the gear and x icon for hgTracks
#greyBarIcons=on
# very experimental, only on hgwdev: support for an embedded IGV track, see #36337
showIgv=on
# Enables approved hgLogin redirect
#login.approvedReturn=https://genome-preview.ucsc.edu/
# Enables single path loading for bigBed. Also, affects bigGenePred and bigPsl.
#bigBedOnePath=on
# calculate GC track on the fly
gcOnTheFly=on
# allow the track to appear even if gc5Base or gc5BaseBw are already there
gcOnTheFlyCoExist=off
# allow most tracks to have an override color that ignores trackDb and the item coloring
showColorPicker=on
# Show chromosome aliases on hgTracks
showAliases=on
# Link from the Convert page to the alignment request page, refs #37973
showLiftRequest=on
# Enable/disable myVariants feature
doMyVariants=on
# Set a limit on how many IP addresses can use the same hguid before a forced captcha check, see #37494
hguidIpTracking.enabled=on
bottleneck.host=hgwdev
bottleneck.port=17776
# Ordered comma-separated list of genePred tables tried when resolving " exon " searches.
# First table with a matching gene symbol wins. Remove or reorder to suit the assembly.
geneTracks=ncbiRefSeqSelect,knownGene,ncbiRefSeq,ncbiRefSeqHistorical
# Allow changing of item color via right click
canColorItems=on
# Enables the password reveal button in hgLogin, refs #37921
login.pwdEyeIcon=on
# Enable passwordless email-link sign-in and the change-email option (genome-test), ticket 37929
login.emailLink=on
# Enable new BLAT UI, 37996
blatNewForm=on
# Enables the redesigned hgc alignment viewer, refs #37893
modernAlignPage=on
# Send the Content Security Policy as an http response header, so pages that
# write their own http header block still carry a policy, refs #38151
cspResponseHeader=on
# Measure how long the track image takes to reach the reader, on one page
# load in N. Left out, it is off. refs #38109
pngTimingSampleRate=1