Basic usage of genomes.jbrowse.org
TL;DR: genomes.jbrowse.org hosts a ready-made JBrowse config for every UCSC genome, and each one already carries that genome's UCSC track catalog. Any of those tracks is a checkbox away, with nothing to download, index or configure.
Prerequisites
- nothing to install: this is a click-path through a hosted site, and no data, config or index is prepared by hand
Where the data comes from
genomes.jbrowse.org's hosted hg38 config, and the one GenArk assembly this page opens for comparison.
- hg38: https://jbrowse.org/ucsc/hg38/config.json
- the 100-way phyloP conservation bigWig, read by locus over TP53: https://hgdownload.soe.ucsc.edu/goldenPath/hg38/phyloP100way/hg38.phyloP100way.bw
- axolotl (Mex_15411), the GenArk assembly in Trying another genome: https://jbrowse.org/hubs/genark/GCF/040/938/575/GCF_040938575.1/config.json
Opening a genome
In 2025 we created genomes.jbrowse.org which hosts JBrowse 2 instances for all the main UCSC database browsers (e.g. hg19, hg38, hs1, mm39 etc) plus the UCSC GenArk project assemblies (which are trackhubs created for over 50,000 NCBI plants, animals, fungi, bacteria, viruses, etc).
/ucsc is the same thing without the shortlist: every UCSC database, with a filter box over the names, species and descriptions.
The search box in the header takes a common name, a species, an assembly name or an accession, and covers both catalogs at once.
Picking one loads a JBrowse instance at a plain URL, so wherever you end up is shareable as a link.
Searching for a gene
Open hg38. It arrives at its own default locus with NCBI RefSeq - RefSeq All
on and the track selector already showing, which is where the next section
starts. Type TP53 into the location box and press Enter. The hosted config
ships a name index, so gene symbols resolve with no setup, and coordinates like
chr17:7,668,400-7,687,550 work anywhere a symbol does.
RefSeq All draws each transcript of a gene on its own row and writes the gene
name under the stack, and TP53 has far more transcripts than a track opens tall
enough to show. The default keeps as many as the height has rows for and says
what it left out: the gene name reads TP53 +20 more, and the circled chip at
the bottom right says Isoforms trimmed. Two ways to see more:
- Click +20 more to open that one gene.
- Click the chip to open Auto / All transcripts / Representative transcript. Picking the last collapses every gene to one transcript, which is what the rest of this page uses.
Finding a track
The track selector is the drawer down the right, and a genome opens with it
showing; the button at the top left of the view header closes and reopens it.
The drawer lists the catalog under UCSC's own categories, and Filter tracks
searches all of them at once. Type phyloP and tick Basewise Conservation
(phyloP) - 100-way vertebrate alignment, which sits under Comparative
Genomics.
The names are UCSC's, so a track known from the UCSC browser is findable under the label it has there. UCSC publishes several phyloP tracks for hg38 and the filter box leaves all of them, so the words after the parenthesis are what picks one out.
Reading the phyloP track
phyloP scores each base against the neutral rate the alignment implies. The score is signed, so the track has a pivot: blue above the line changes more slowly than neutral, red below it faster.
The peaks are the width of the coding exons. Exons 5-8 carry the codons this gene is most often mutated at in cancer, and phyloP is high across all four of them, so a variant landing there has 100 vertebrates saying the base matters.
The introns drop to the pivot, and so does the other shaded block: the 3' UTR, an exon as wide as any coding one and present in every transcript. The track follows the protein, and the 3' UTR is where the protein and the transcript come apart.
Checking the score against the raw data
At gene zoom a per-base score and a smoothed band are the same picture, so zoom in until the sequence appears. The exon below is exon 7, one of the four shaded above, and it covers G245, R248 and R249, three of the codons most often mutated in human cancer: Arg248 reaches into the DNA itself, and the other two hold the loop that carries it.
One more click makes it readable:
- Tick Reference sequence, which is off by default.
- Once its menu has been opened, the isoform chip shrinks to the icon circled below, which stays in that corner and opens the same options.
- At this zoom the default draws the codon row once per transcript.
At that zoom the score is one bar per base, and within a codon the third base is the short one: most third-position changes leave the amino acid alone, so the constraint is on the protein. Hovering a bar reads back its score.
The alignment the score came from
phyloP scores a base by comparing a multiple alignment against the tree, and on this config that alignment is a checkbox too. UCSC publishes no bigMaf for the 100-way, so this section switches to the 470-way pair. Leave the window where it is, and tick both, under Comparative Genomics:
- Multiz Alignments - 470-way Mammal Alignment (Hiller lab)
- Basewise Conservation (phyloP) - 470 phyloP
Most columns are blank, which is what a positive score is made of. phyloP counts substitution events on the tree:
- Under S240, nearly every species differs from human, but all carry the same base and the score stays above the line: one substitution on the human branch, however many rows show it.
- Under T256 and G244, fewer rows differ and those that do disagree with each other, and there the score goes red.
The track's zoom range has two limits:
- This track only opens at base zoom. A MAF block carries a row per species, so the byte estimate crosses the too-much-data limit within a few kb and a gene-wide view asks you to confirm before fetching.
- Zoomed further out it swaps to a precomputed summary and draws a conservation bar per species.
The regulatory end of the same gene
Conservation is one category of about a dozen, and the others are the same two clicks. Zoom out to the whole gene, and tick five Regulation and Expression tracks to put a picture over it:
- CpG Islands
- ENCODE cCREs - ENCODE4 cCREs
- Layered H3K4Me3 (hg19)
- Layered H3K27Ac (hg19)
- EPDnew Promoters - EPDnew v6
The two histone tracks each hold seven cell lines, drawn over one another as they open. Track menu → Plot type → Multi-row → XY plot gives each cell line a row of its own. Their names carry hg19 because that is the assembly ENCODE3 released them on; the files this config points at are the hg38 ones.
The promoter is at the high-coordinate end because the gene is on the minus strand, and everything lands there together: the CpG island, a promoter-class cCRE, the EPDnew call and both marks. Over the gene body the marks are flat. H3K4me3 marks a promoter and H3K27ac marks an active one, so a cell line with both is transcribing here. All seven carry both.
Filtering a dense track
A catalog track over a whole gene is usually more records than a screen can separate, and the way through it is the track's own columns. gnomAD v4.1 - gnomAD v4.1 Exomes under Variation and Repeats opens as several thousand records over TP53, which is one block of colour. Track menu → Filter by... takes either of its columns:
feature.AFis the allele frequency.feature.annotis gnomAD's own consequence class (pLoF, missense, synonymous or other).
The dialog takes one jexl expression per line, and the track redraws with the records that pass all of them:
jexl:feature.AF >= 0.001keeps the variants standing in the population.jexl:feature.annot == 'pLoF'keeps the predicted loss-of-function set.
The colours are the file's own, and gnomAD uses them for the same consequence
class annot names, so the loss-of-function filter leaves a track drawn in one
colour.
Once a filter is in effect that same menu row opens a submenu:
- Edit filters... brings the dialog back with the expression still in it.
- Clear all filters puts every record back.
A BigBed's extra fields arrive as fields, so whatever columns the published file
carries are what there is to filter and colour on, and the same dialog takes
them for any track. ClinVar's clinical classification is feature.clinSign, so
jexl:feature.clinSign == 'Pathogenic' cuts that catalog down the same way.
Other tracks in the hg38 catalog
The same two clicks reach the rest of the catalog. A few that come up often:
- Conserved Elements - 100 Vert. El (Comparative Genomics) is the interval companion to phyloP: phyloP scores each base, phastCons calls the runs.
- RepeatMasker (Repeats) says which parts of a window are repeat elements.
- GTEx cis-eQTLs - GTEx DAP-G eQTLs (Regulation) names the variants associated with expression of nearby genes.
- Long-read SVs - CoLoRSdb 1427 SVs (Variation and Repeats) covers the size range short reads call badly.
- liftOver (Pairwise alignments) is a genome-to-genome alignment, and gets a page of its own in Synteny on genomes.jbrowse.org.
Drag a track by the handle at the left of its header to reorder it; the ×
closes it.
What is actually downloaded
The config lives on jbrowse.org, but most UCSC track data resolves back to hgdownload and JBrowse reads those files by byte range. The track menu's About track prints the adapter, which is where to look when a track is slow or missing: the file it names is the one being read.
The phyloP file covers the whole genome and only the blocks under the current view are fetched, which is why a genome-wide signal track opens at gene zoom without downloading it.
The URL is the file itself, so anything that reads a BigWig by range can take
it. In R that is rtracklayer, which reads the same bytes over the same range
into a GRanges for a figure of your own:
library(rtracklayer)
scores <- import(
"https://hgdownload.soe.ucsc.edu/goldenPath/hg38/phyloP100way/hg38.phyloP100way.bw",
which = GRanges("chr17", IRanges(7668400, 7687550))
)
The BigBeds behind the variant and annotation tracks read the same way.
Trying another genome
The GenArk assemblies behave the same way, with two differences:
- Their configs carry a smaller track set.
- Whether a gene symbol resolves depends on which accession you opened. The
name index is built from an assembly's NCBI RefSeq annotation, so a
GCF_accession (RefSeq) carries gene tracks and an index and searches like hg38 does, while aGCA_one (GenBank) generally has neither and coordinates are the way in.
An assembly released both ways appears under both accessions, same sequence, and
only the RefSeq one searches: the axolotl Mex_15411 is GCF_040938575.1 and
GCA_040938575.1.
The same gene spans a few hundred kb here: the axolotl genome is one of the largest sequenced.
See also
- Gene track
- Synteny on genomes.jbrowse.org
- Proteins on genomes.jbrowse.org
- Pangenome (HPRC)
- RepeatMasker as one lane per class
- Quantitative track
- Opening track hubs by URL
- Hosted genomes and tracks for agents
References
- Pollard KS et al. Detection of nonneutral substitution rates on mammalian phylogenies. Genome Res 2010, the phyloP method
- Bouaoun L et al. TP53 variations in human cancers. Hum Mutat 2016, the mutation distribution across TP53 codons
- Cho Y et al. Crystal structure of a p53 tumor suppressor-DNA complex. Science 1994, which hotspot residues contact the DNA and which hold the structure
- Liao WW et al. A draft human pangenome reference. Nature 2023, the HPRC assemblies the pangenome callset is built from
- UCSC hg38 conservation downloads
Feedback on this tutorial is welcome: contact us.