Hello all!
This release announces v3.0.0 of JBrowse 2. It is not at all a dramatic change
like the JBrowse 1 -> JBrowse 2 transition, it's much more incremental, and in
fact, you can go on calling it JBrowse 2...as a point of comparison, ggplot2 is
on v3.5.1 right now :)
We decided to make a major bump due to some small "breaking" changes that could
affect plugin and embedded library users in particular.
But for most users, this release should have nothing but the usual bugfixes and
improvements! And there are a lot of these!
Without further ado, here are some highlights!
Improved rendering of phased VCF in multi-variant view
Phased variants offer a unique opportunity to see which parent particular
variants came from. To help this, we added a new "phased" rendering mode to the
multi-variant renderings, that takes phased VCF and renders each phase as an
individual row. This allows users to effectively see the entire row as a
haplotype, and can be used to help visualize trio VCF to find parent of origin
Screenshot showing the "phased mode" for a trio VCF

Screenshot showing how to access the phased rendering mode
Rendering of phase-sets
This could be more or less uncommon depending on your work, but for incompletely
phased variant calls you will see "phased sets" (PS tag in genotypes). We color
each set a random color

Screenshot showing phase set rendering of a phased VCF. This is nearly
completely phased so just showing green, but each phase set would get a unique
color. The black entries are unphased variants (which could be filtered out, but
this is not done currently)
Rendering polyploids in the multi-variant view

Screenshot showing the "polyploid" rendering of the multi-variant display.
Polyploid variant calls can look like 0/2/./1
indicating one match to the
reference (0), two alts (1,2), and one missing call (.).
- Yellow indicates missingness
- Grey indicates reference
- Blue indicates the ALT===1
- Red is ALT!==1
Each of these is a spectrum that increases in darkness, so darker blue indicates
more ALT===1, darker red indicates more ALT!==1, darker yellow is more uncalled,
etc.

Screenshot showing multi-sample matrix display, with the population colors
coming from a "sample TSV" file. The below config shows the samplesTsvLocation
config, the first column should match the sample name in the VCF
Example TSV
name population
HG01879 ACB
HG01880 ACB
HG01881 ACB
HG01882 ACB
HG01883 ACB
HG01884 ACB
Config
{
"type": "VariantTrack",
"trackId": "1kGP_high_coverage_Illumina.chr1.filtered.SNV_INDEL_SV_phased_panel.vcf",
"name": "1kGP_high_coverage_Illumina.chr1.filtered.SNV_INDEL_SV_phased_panel.vcf",
"assemblyNames": ["hg19"],
"adapter": {
"type": "VcfTabixAdapter",
"vcfGzLocation": {
"uri": "https://ftp-trace.ncbi.nlm.nih.gov/1000genomes/ftp/release/20130502/ALL.chr1.phase3_shapeit2_mvncall_integrated_v5a.20130502.genotypes.vcf.gz"
},
"index": {
"location": {
"uri": "https://ftp-trace.ncbi.nlm.nih.gov/1000genomes/ftp/release/20130502/ALL.chr1.phase3_shapeit2_mvncall_integrated_v5a.20130502.genotypes.vcf.gz.tbi"
}
},
"samplesTsvLocation": {
"uri": "https://jbrowse.org/genomes/hg19/1000g.sorted.csv.gz"
}
}
}
Improved UI for opening synteny tracks
It has always been challenging for end users to open synteny tracks
To help with this, we now support adding synteny tracks via the default "Add
track" workflow, and make it easier to specify the query and target assembly
names. We also added a similar UI change to the "Linear synteny view" import
form

Screenshot showing the default add track workflow with new UI for choosing
target and query assemblies for PAF tracks

Screenshot showing the add track workflow in the "Linear synteny view" import
form, also showing new UI for choosing query and target assmblies
In working with users, we noticed people having to click the zoom buttons or
fiddle with the slider a lot. To aid this, we added a small dropdown for quickly
doing 10x, 50x, and 100x zooms

For developers: some "breaking" changes
- We changed the "filehandle" type used in data adapters. We now use
generic-filehandle2 which is simpler and does not require a node.js polyfill
on the web
- Upgrading React 18 -> React 19 in our main webapp. This drops support for
React 17, and may have some other implications
If you are a plugin or embedded user, and experience problems with upgrading,
let us know!
Downloads
To install JBrowse 2 for the web, you can download the link above, or you can
use the JBrowse CLI to automatically download the latest version. See the
JBrowse web quick start for more
details.
yarn run v1.22.22 $ lerna-changelog --silent --silent --next-version 3.0.0
3.0.0 (2025-01-29)
💥 Breaking Change
core
__mocks__
, app-core
, core
, embedded-core
, product-core
, sv-core
🚀 Enhancement
- Other
core
, web-core
core
, product-core
- #4798 Add more track
metadata to UCSC assembly hub loading
(@cmdcolin)
core
- #4795 Improved
rendering of phased VCF and polyploid VCF in multi-variant view
(@cmdcolin)
- #4792 Allow
uploading a sampleTsv file with per-sample metadata for VCF files
(@cmdcolin)
- #4786 Allow opening
"synteny tracks" from the default Add track workflow
(@cmdcolin)
- #4785 Allow opening
BedGraph et al in the default Add track workflow
(@cmdcolin)
- #4784 Improve UI for
choosing query and target assemblies in the "New track" workflow for synteny
tracks (@cmdcolin)
- #4767 Improve load
time when multiple tracks use same data file
(@cmdcolin)
- #4750 Add some more
lazy loading for smaller bundle size
(@cmdcolin)
sv-core
- #4753 Allow
launching a single level breakpoint split view focused on the breakends
(@cmdcolin)
web-core
app-core
, core
- #4729 Update cram-js
to avoid requesting file size for more CORS compatibility
(@cmdcolin)
🐛 Bug Fix
- Other
- #4778 Fix GC content
calculation consistency across blocks
(@cmdcolin)
- #4773 Fix "Color by
CDS" for BED12 features (@cmdcolin)
- #4771 Fix generating
categories for composite tracks in UCSC hubs
(@cmdcolin)
- #4769 Fix facet
filter crash (@cmdcolin)
- #4765 Fix repeat
masker track BED interpretation (@cmdcolin)
- #4764 Fix
modifications coverage calculations
(@cmdcolin)
- #4731 Fix naming of
subtracks produced by "group by tag" operation
(@cmdcolin)
- #4732 Fix persisting
alignments "color by" and "filter by" settings in snapshots/session
shares/page reloads (@cmdcolin)
core
- #4776 Fix maximum
recursion error in linear synteny view import form
(@cmdcolin)
- #4768 Fix navigation
via CIGAR string alignment in synteny view
(@cmdcolin)
- #4766 Fix some bed12
transcripts displaying as bedMethyl features
(@cmdcolin)
- #4727 Fix type
confusion where sequence feature details crashes for empty subfeatures
(@cmdcolin)
- #4725 Avoid error on
closing draggable dialog and a couple more refactors
(@cmdcolin)
🏠 Internal
Committers: 2