v3.0.0 Release
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.
Adding sample metadata to VCF from an external TSV
Screnshot 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
Screnshot 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
New "turbo zoom" buttons
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
- #4789 Allow user to edit region size as 'Custom zoom' (@cmdcolin)
- #4796 Make any bigType track open as BigBedAdapter in ucsc connections (@cmdcolin)
- #4788 Allow supplying a tsv of sample metadata with VCF for multi-variant views (@cmdcolin)
- #4782 Add track filetype guesser for BedGraph (@cmdcolin)
- #4774 Restore concept of linking synteny views (@cmdcolin)
- #4770 Add turbo-zoom buttons (@cmdcolin)
- #4756 Improved mouseover on alignment squiggles in breakpoint split view (@cmdcolin)
- #4736 Bulk delete session tracks (@cmdcolin)
- #4733 Add option to 'Hide small indels (less than 10bp)' (@cmdcolin)
core
,web-core
core
,product-core
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
web-core
app-core
,core
🐛 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
- Colin Diesh (@cmdcolin)
- Kim Rutherford (@kimrutherford) Done in 2.19s.