9541aea4204c8079ea2e464403f2225f6aa33cfd
max
Mon Sep 14 07:59:00 2026 -0700
uniprot: show the splice variant track, and filter the CAT alignments
Two things that were quietly missing.
unipSplice has been built since the pipeline rewrite in #19351 and never had a
trackDb stanza - "git log -S unipSplice" on uniprot.ra returns nothing, so it was
never wired up rather than deliberately dropped. It holds UniProt's splice variant
features, 28962 of them on hg38 and 29195 on hs1, and has been invisible on every
assembly for years. Added to uniprot.ra and to the archive/contrib template, which
is where the hub-served assemblies get their trackDb. The file exists on the same
131 assemblies as unipDomain.bb, so no stanza points at anything missing.
The alignments on a CAT assembly were not being filtered with pslSelect. That
filter maps a UniProt accession to the transcripts UniProt cross-references for it,
and the README is blunt about how much it matters for protein families with nearly
identical transcripts. It understood two kinds of id, Ensembl and RefSeq, and CAT
names a transcript after its source gene, so hs1 matched neither and fell through
unfiltered. Every row of the CAT bigBed carries the Ensembl transcript it was lifted
from, so catSourceTransMap joins on that and UniProt's Ensembl cross-reference does
the rest.
The mapping had to become one-to-many for this: one Ensembl transcript can name
several of ours, both because paralogs are lifted from the same source and because
duplicate CAT names were given -dup suffixes earlier. It reproduces those suffixes
by walking the bigBed in the same order rather than attaching every paralog to every
source, which measured 234903 of 234903 hs1 transcripts mapped, no duplicates,
against 330749 for the loose version. For every other gene track the lists hold one
element and the behaviour is unchanged, which is checked: a single-valued entry
still writes exactly one pair line and still counts a version difference, a
multi-valued one writes a line per transcript, and an id we do not have is still
skipped so pslSelect -qPass passes it through.
refs #38300
diff --git src/hg/makeDb/trackDb/uniprot.ra src/hg/makeDb/trackDb/uniprot.ra
index 1d03dd1e992..02a8e9aef8c 100644
--- src/hg/makeDb/trackDb/uniprot.ra
+++ src/hg/makeDb/trackDb/uniprot.ra
@@ -1,242 +1,254 @@
# if you modify this file, make sure that you also modify /hive/data/outside/otto/uniprot/uniprot.ra
# which is the template for the hub in the archive/ on hgdownload. This hub is build for every release,
# so users can open old versions of UniProt
track uniprot
shortLabel UniProt
longLabel UniProt SwissProt/TrEMBL Protein Annotations
group genes
visibility hide
type bigBed 12 +
exonNumbers off
compositeTrack on
allButtonPair on
urls uniProtId="http://www.uniprot.org/uniprot/$$#section_features" pmids="https://www.ncbi.nlm.nih.gov/pubmed/$$"
itemRgb on
dataVersion /gbdb/$D/uniprot/version.txt
hideEmptySubtracks on
track unipAliSwissprot
shortLabel SwissProt Aln.
longLabel UCSC alignment of SwissProt proteins to genome (dark blue: main isoform, light blue: alternative isoforms)
priority 1
parent uniprot
visibility pack
type bigPsl
bigDataUrl /gbdb/$D/uniprot/unipAliSwissprot.bb
searchIndex name,acc
urls acc="https://www.uniprot.org/uniprot/$$" hgncId="https://www.genenames.org/cgi-bin/gene_symbol_report?hgnc_id=$$" refSeq="https://www.ncbi.nlm.nih.gov/nuccore/$$" refSeqProt="https://www.ncbi.nlm.nih.gov/protein/$$" ncbiGene="https://www.ncbi.nlm.nih.gov/gene/$$" entrezGene="https://www.ncbi.nlm.nih.gov/gene/$$" ensGene="https://www.ensembl.org/Gene/Summary?g=$$"
labelFields name,acc,uniprotName,geneName,hgncSym,refSeq,refSeqProt,ensProt
mouseOver UniProt record accession: $acc
Protein Name: $protFullNames
UniProt status: $status
itemRgb on
#color 2,12,120
indelDoubleInsert on
indelQueryInsert on
baseColorTickColor contrastingColor
baseColorUseCds given
baseColorDefault genomicCodons
showDiffBasesAllScales on
# this is only for filtering, no need to show it
skipFields isMain
track unipAliTrembl
shortLabel TrEMBL Aln.
longLabel UCSC alignment of TrEMBL proteins to genome
priority 2
parent uniprot off
visibility hide
type bigPsl
bigDataUrl /gbdb/$D/uniprot/unipAliTrembl.bb
searchIndex name,acc
urls acc="https://www.uniprot.org/uniprot/$$" hgncId="https://www.genenames.org/cgi-bin/gene_symbol_report?hgnc_id=$$" refseq="https://www.ncbi.nlm.nih.gov/nuccore/$$" refSeqProt="https://www.ncbi.nlm.nih.gov/protein/$$" ncbiGene="https://www.ncbi.nlm.nih.gov/gene/$$" entrezGene="https://www.ncbi.nlm.nih.gov/gene/$$" ensGene="https://www.ensembl.org/Gene/Summary?g=$$"
labelFields name,acc,uniprotName,geneName,hgncSym,refSeq,refSeqProt,ensProt
mouseOver UniProt record accession: $acc
Protein Name: $protFullNames
UniProt status: $status
itemRgb on
#color 0,150,250
indelDoubleInsert on
indelQueryInsert on
baseColorTickColor contrastingColor
baseColorUseCds given
baseColorDefault genomicCodons
showDiffBasesAllScales on
# this is only for filtering, no need to show it
skipFields isMain
track unipLocSignal
shortLabel Signal Peptide
longLabel UniProt Signal Peptides
priority 3
parent uniprot
visibility dense
type bigBed 12 +
bigDataUrl /gbdb/$D/uniprot/unipLocSignal.bb
color 255,0,150
itemRgb off
filterValues.status Manually reviewed (Swiss-Prot),Unreviewed (TrEMBL)
mouseOver UniProt record: $uniProtId
Position: $position
UniProt record name: $status
track unipLocExtra
shortLabel Extracellular
longLabel UniProt Extracellular Domain
priority 4
parent uniprot
visibility dense
type bigBed 12 +
bigDataUrl /gbdb/$D/uniprot/unipLocExtra.bb
color 0,150,255
itemRgb off
filterValues.status Manually reviewed (Swiss-Prot),Unreviewed (TrEMBL)
mouseOver UniProt record: $uniProtId
Position: $position
UniProt status: $status
track unipLocTransMemb
shortLabel Transmembrane
longLabel UniProt Transmembrane Domains
priority 5
parent uniprot
visibility dense
type bigBed 12 +
bigDataUrl /gbdb/$D/uniprot/unipLocTransMemb.bb
color 0,150,0
itemRgb off
filterValues.status Manually reviewed (Swiss-Prot),Unreviewed (TrEMBL)
mouseOver UniProt record: $uniProtId
Position: $position
UniProt status: $status
track unipLocCytopl
shortLabel Cytoplasmic
longLabel UniProt Cytoplasmic Domains
priority 6
parent uniprot
visibility dense
type bigBed 12 +
bigDataUrl /gbdb/$D/uniprot/unipLocCytopl.bb
color 255,150,0
itemRgb off
filterValues.status Manually reviewed (Swiss-Prot),Unreviewed (TrEMBL)
mouseOver UniProt record: $uniProtId
Position: $position
UniProt status: $status
track unipChain
shortLabel Chains
longLabel UniProt Mature Protein Products (Polypeptide Chains)
priority 7
parent uniprot
visibility dense
type bigBed 12 +
bigDataUrl /gbdb/$D/uniprot/unipChain.bb
urls uniProtId="http://www.uniprot.org/uniprot/$$#ptm_processing" pmids="https://www.ncbi.nlm.nih.gov/pubmed/$$"
filterValues.status Manually reviewed (Swiss-Prot),Unreviewed (TrEMBL)
mouseOver UniProt record: $uniProtId
Position: $position
UniProt status: $status
track unipInterest
shortLabel Interest
longLabel UniProt Regions of Interest
priority 4
parent uniprot
visibility dense
type bigBed 12 +
bigDataUrl /gbdb/$D/uniprot/unipInterest.bb
itemRgb off
filterValues.status Manually reviewed (Swiss-Prot),Unreviewed (TrEMBL)
mouseOver UniProt record: $uniProtId
Position: $position
UniProt status: $status
track unipDomain
shortLabel Domains
longLabel UniProt Domains
priority 8
parent uniprot
visibility dense
type bigBed 12 +
bigDataUrl /gbdb/$D/uniprot/unipDomain.bb
urls uniProtId="http://www.uniprot.org/uniprot/$$#family_and_domains" pmids="https://www.ncbi.nlm.nih.gov/pubmed/$$"
filterValues.status Manually reviewed (Swiss-Prot),Unreviewed (TrEMBL)
mouseOver UniProt record: $uniProtId
Position: $position
UniProt status: $status
track unipDisulfBond
shortLabel Disulf. Bonds
longLabel UniProt Disulfide Bonds
priority 8
parent uniprot
visibility dense
type bigBed 12 +
bigDataUrl /gbdb/$D/uniprot/unipDisulfBond.bb
filterValues.status Manually reviewed (Swiss-Prot),Unreviewed (TrEMBL)
mouseOver UniProt record: $uniProtId
Position: $position
UniProt status: $status
track unipModif
shortLabel AA Modifications
longLabel UniProt Amino Acid Modifications
priority 9
parent uniprot
visibility dense
type bigBed 12 +
bigDataUrl /gbdb/$D/uniprot/unipModif.bb
urls uniProtId="http://www.uniprot.org/uniprot/$$#aaMod_section" pmids="https://www.ncbi.nlm.nih.gov/pubmed/$$"
filterValues.status Manually reviewed (Swiss-Prot),Unreviewed (TrEMBL)
mouseOver UniProt record: $uniProtId
Position: $position
UniProt status: $status
track unipMut
shortLabel Mutations
longLabel UniProt Amino Acid Mutations
priority 10
parent uniprot
visibility dense
type bigBed 12 +
bigDataUrl /gbdb/$D/uniprot/unipMut.bb
urls uniProtId="http://www.uniprot.org/uniprot/$$#pathology_and_biotech" pmids="https://www.ncbi.nlm.nih.gov/pubmed/$$" variationId="http://www.uniprot.org/uniprot/$$"
mouseOver UniProt record: $uniProtId
UniProt variant: $variationId
UniProt status: $status
track unipStruct
shortLabel Structure
longLabel UniProt Protein Primary/Secondary Structure Annotations
priority 11
parent uniprot
group genes
visibility hide
type bigBed 12 +
bigDataUrl /gbdb/$D/uniprot/unipStruct.bb
urls uniProtId="http://www.uniprot.org/uniprot/$$#structure" pmids="https://www.ncbi.nlm.nih.gov/pubmed/$$"
filterValues.status Manually reviewed (Swiss-Prot),Unreviewed (TrEMBL)
mouseOver UniProt record: $uniProtId
Position: $position
UniProt status: $status
track unipOther
shortLabel Other Annot.
longLabel UniProt Other Annotations
priority 11
parent uniprot
visibility dense
type bigBed 12 +
bigDataUrl /gbdb/$D/uniprot/unipOther.bb
urls uniProtId="http://www.uniprot.org/uniprot/$$#family_and_domains" pmids="https://www.ncbi.nlm.nih.gov/pubmed/$$"
filterValues.status Manually reviewed (Swiss-Prot),Unreviewed (TrEMBL)
mouseOver UniProt record: $uniProtId
Position: $position
UniProt status: $status
track unipRepeat
shortLabel Repeats
longLabel UniProt Repeats
priority 12
parent uniprot
visibility dense
type bigBed 12 +
bigDataUrl /gbdb/$D/uniprot/unipRepeat.bb
urls uniProtId="http://www.uniprot.org/uniprot/$$#family_and_domains" pmids="https://www.ncbi.nlm.nih.gov/pubmed/$$"
filterValues.status Manually reviewed (Swiss-Prot),Unreviewed (TrEMBL)
mouseOver UniProt record: $uniProtId
Position: $position
UniProt status: $status
track unipConflict
shortLabel Seq. Conflicts
longLabel UniProt Sequence Conflicts
priority 13
parent uniprot off
visibility dense
type bigBed 12 +
bigDataUrl /gbdb/$D/uniprot/unipConflict.bb
urls uniProtId="http://www.uniprot.org/uniprot/$$#Sequence_conflict_section" pmids="https://www.ncbi.nlm.nih.gov/pubmed/$$"
filterValues.status Manually reviewed (Swiss-Prot),Unreviewed (TrEMBL)
mouseOver UniProt record: $uniProtId
Position: $position
UniProt status: $status
+ track unipSplice
+ shortLabel Splice Variants
+ longLabel UniProt Splice Variants
+ priority 14
+ parent uniprot
+ visibility dense
+ type bigBed 12 +
+ bigDataUrl /gbdb/$D/uniprot/unipSplice.bb
+ urls uniProtId="http://www.uniprot.org/uniprot/$$#sequences" pmids="https://www.ncbi.nlm.nih.gov/pubmed/$$"
+ filterValues.status Manually reviewed (Swiss-Prot),Unreviewed (TrEMBL)
+ mouseOver UniProt record: $uniProtId
Position: $position
UniProt status: $status
+
searchTable unipAliSwissprot
searchType bigBed
searchDescription UniProt/SwissProt manually curated Proteins mapped to the genome by UCSC
searchTable unipAliTrembl
searchType bigBed
searchDescription UniProt/TrEMBL predicted Proteins mapped to the genome by UCSC