Releases: GMOD/jbrowse-components
Release v4.1.15
This release fixes some issues where the alignments track was not scrollable, and some other misc issues
bug
- Fix MM tag ambiguity codes not being recognized (#5529) @cmdcolin
- Fix when using refname aliases for chromosome names in displayedRegions list (#5522) @cmdcolin
- Fix arc tracks with custom jexl crashing (#5513) @cmdcolin
- Fix alignments tracks not being able to vertically scroll since v4.1.4 (#5512) @cmdcolin
- Fix HTTP 416 errors by replacing http-range-fetcher with simpler fetcher (#5505) @cmdcolin
enhancement
Release v4.1.14
This release fixes a bug with parsing BAM files with large headers on the v4 branch and a couple other small things
bug
- Bump @gmod/jexl for multi-expression fix (#5494) @cmdcolin
- Fix custom multi-sample variant label coloring loss after clustering (#5493) @cmdcolin
- Fix displaying 'sanitized html' in faceted data grid (#5492) @cmdcolin
enhancement
Release v4.1.11
Hello all, this is a minor bugfix and feature release
Please note that we are in the process of migrating to WebGL/WebGPU, which includes smooth zooming and improved performance. Please feel free to contact us or visit #5468
for more information and early preview
bug
- Fix trackname not showing up in search results dialog (#5480) @cmdcolin
- Use summaryScoreMode for stats range calculation (#5475) @cmdcolin
- Fix "Add track" showing track in mismatched assembly view (#5474) @cmdcolin
- Fix floating labels in svg exports (#5465) @cmdcolin
- Fix show all regions with many small elided regions (#5454) @cmdcolin
enhancement
- Allow searching metadata in faceted track selector (#5477) @cmdcolin
- Search result extension point (#5476) @cmdcolin
- Add PNG export option to the 'Export SVG' dialog (#5463) @cmdcolin
- Add hierarchical tree sidebar to multiwiggle clusterings (#5459) @cmdcolin
- Make the loading bars occupy full track height (#5451) @cmdcolin
internal
- Remove
electron-builder(#5457) @cmdcolin - Update jsdom and @mui/x-data-grid (#5484) @cmdcolin
- Bump dependencies (#5469) @cmdcolin
- Add more backward compatibility exports (#5467) @garrettjstevens
- Remove node-fetch library (#5486) @cmdcolin
- Typescriptify webpack configs and build scripts (#5485) @cmdcolin
- Export fetchResults from linear-genome-view (#5482) @hextraza
Release v4.1.3
This release includes several important bugfixes including fixes for:
a) the scrolling being extremely choppy when zoomed in since v4.0.3
b) jbrowse text-index not indexing all tracks by default
Full changelog
bug
- Revert css based --var scrolling due to visual glitches at large bp offsets (#5449) @cmdcolin
- Fix jbrowse-cli text-index not working without --tracks parameter (#5446) @cmdcolin
- Add E2E test for jbrowse img (#5443) @cmdcolin
- Fix jbrowse-img for ESM css loader and setupEnv. (#5441) @Yihuki
- Stop token refactoring and gene glyph speed up when zoomed in (#5450) @cmdcolin
Release v4.1.1
Hello all,
This is a minor release but contains a couple great new features, and some important bugfixes. Please see the release notes below
Local files are preserved even after page refresh in jbrowse-web
When users of jbrowse-web open files from their local machine, it can continue to work after page refresh. This is currently a Chrome only feature facilitated by the FileSystemFileHandle API https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileHandle
Add advanced track configuration via the URL bar
Previously, users could launch tracks by supplying a list of trackIds in the URL e.g. &tracks=track1,track2. Now, users can supply an array of JSON params https://jbrowse.org/jb2/docs/urlparams/#advanced-track-configuration
Add linkage disequilibrium viewer
In an effort to expand the utility of our variant visualization capabilities, we integrated a built-in linkage disequilibrium viewer for multi-sample variant tracks. This can load data from multi-sample variant files or PLINK output files. This can plot r^2 and D' with a variety of visual customization options
See the full changelog below for more info
bug
- Minor fixes for genbank and gff3 file export (#5435) @cmdcolin
- Fix issues with large VCF files not displaying in v4.0.4 (#5432) @cmdcolin
- Add testing for remote file fetching in text-index (#5429) @cmdcolin
- Fix text-index from remote gz file. (#5427) @Yihuki
enhancement
- Add stack trace to jbrowse desktop text indexing failures (#5436) @cmdcolin
- Add config.json slots for multi-sample variant displays (#5434) @cmdcolin
- Add examples of using the Core-preProcessConfig extension point (#5433) @cmdcolin
- Bump to @gmod/cram v8 for qual speed and memory optimization (#5430) @cmdcolin
- Allow supplying initial display parameters when using URL query param API (#5426) @cmdcolin
- Allow custom jexl functions to be used in filters (#5425) @cmdcolin
- Add type:"module" to package.json's to complete ESM conversion (#5422) @cmdcolin
- Add testing for electron app using windows github action runner and fix text indexing on windows (#5421) @cmdcolin
- Create system for visualizing linkage disequilibrium from VCF and PLINK output files (#5420) @cmdcolin
- Add ability to reload local files across page using FileSystemFileHandle API (#5419) @cmdcolin
- Add re-exports to enable embedded apps to use webworkers after v4 (#5418) @cmdcolin
Release v4.0.4
Hello all,
this release fixes some bugs reported by users in v4.0.3 including those related to
- using workspaces in jbrowse desktop
- searching and text indexing gff3 on desktop
- using mouseover tooltips on the new canvas features
Thanks to everyone for reporting and helping fix these issues!
bug
- Fix desktop text indexing workflow and search for GFF3 files, and add testing (#5411) @cmdcolin
- Fix errors using 'duplicate session' and viewing recent sessions (#5408) @cmdcolin
- Fix tiled window manager/workspaces not working on desktop (#5406) @cmdcolin
enhancement
Release v4.0.3
Hello all! We are happy to announce this new major version update to JBrowse 2
There are a lot of improvements large and small!
PS we created a new survey to gather responses about people's experiences, please feel free to fill it out and/or share with others! https://forms.gle/okejv948EZU87E4M7 (anonymous responses are ok!)
Without further ado, here are some highlights in this new version
New "Collapsed introns" view
Users can right-click a gene and launch a 'Collapsed introns' view that focuses on just the exonic regions. The RNA-seq alignments work with this view also, with sashimi arcs connecting across the different regions
New "Canvas features" track type
We have replaced the SVG feature renderer with a new HTML5 canvas feature renderer. This has improved user experience and also comes with new functionality including:
- Per-transcript mouseover and feature clicks
- Ability to show only the "Longest transcript" for gene glyphs with many sub-transcripts
- Improved performance
- Directional chevrons
Screenshot showing the "Longest transcript" option
Alignments track performance improvements
Our BAM and CRAM parsers were updated with a variety of performance optimizations. We analyzed the entire stack and added
- low level binary for parsing CIGAR strings
- using WASM for parsing
- using mosdepth style coverage calculations
- improved speed for deep RNA-seq data
And much more
Alignments track mouseovers and new features
We also added many usability improvements to the alignments tracks like adding the ability to mouseover and click individual insertions, mismatches, deletions, etc.
Users can also optionally turn off drawing mismatches entirely...sometimes it's not what you care to see!
"Linked read display" improvements
In v3.7.0 we announced the "Linked read display" mode (https://jbrowse.org/jb2/blog/2025/11/07/v3.7.0-release/#create-linked-read-display-for-alignments-tracks) which connects paired end or split long reads. This new release allows drawing mismatches on the reads, and generally behaves a lot like the normal alignments track!
Screenshot showing an inversion with split long reads (the red->blue->red chain indicates a single split long read flipping orientation in the middle) and paired-end short reads (blue and green reads indicate aberrant pairing)
Display color legends on screen
We added the ability to show legends on a variety of display types, which will help users understand the meaning of colors on the screen!
"Save track data"
Users can now export data in the visible region in a variety of formats, tailored to the track type and file type of interest. This was a commonly requested feature, so we are excited to finally solve it
Simplified configuration
Users no longer have to explicitly supply 'sequenceAdapter' to BAM and CRAM files. It will infer the sequence adapter from the assembly. Anyone who directly works with JBrowse configuration files will benefit from this simplification!
Screenshot showing a simplified config for a CRAM track
Much faster load time for large tracklists
Previously, when a JBrowse instance had more than a couple thousand tracks, the startup time would slow down dramatically. We made internal changes to our track loading that now makes these load times virtually instant now! This was enabled by making track configuration models instantiated only when the track is opened, which plugin authors should be aware of
Graph showing the load time of different tracklist sizes in v3.7.0 and v4.0.0, showing runaway showness with v3.7.0 after just a couple thousand tracks that is now under control in v4.0.0
Easily filter variant samples by genotype
This allows users to easily filter the variants in the feature detail widget by genotype. It can also be toggled to filter by 'dosage' which is helpful for polyploid organisms
New "Workspaces" feature for tiled window management!
We added the Dockview (https://dockview.dev) window manager to the app interface, so you can now create left-right splits, top-bottom splits, new tabs, and more in jbrowse web and desktop. This enables a large variety of extra layouts compared with the previous vertical-stack-only limitation of previous JBrowse 2 versions!
Screenshot showing left-right split
Improved user-experience when side-scrolling
Wiggle and Hi-C tracks will now stay on the screen while new renderings (e.g. change to y-axis scale) are re-computing. It is a subtle change that we hope improves user-experience!
Breaking changes
There are a large number of internal changes, and it would be hard to fully enumerate all the changes, but some of the changes include
- Splitting renderProps (for webworker renderer) and renderingProps (main thread)
- Changing mobx-state-tree to @jbrowse/mobx-state-tree https://github.com/GMOD/mobx-state-tree
- Changing jexl to @jbrowse/jexl https://github.com/GMOD/jexl
- Removal of @jbrowse/plugin-svg, automatically remapping to CanvasFeatureRenderer
- Make all packages "pure-ESM", may affect node.js usage
A variety of other internal changes took place. If you see any problems after migration, please let us know and we will be happy to work with you to help
User survey
We have started a new survey here https://forms.gle/dy41TWmKe8KPRews7 to help gather user experiences with JBrowse. We know that it is not always easy to get the courage to create github issues but any feedback large or small is welcome!
bug
- Fix smaller genomic region being shown when using &tracklist=true URL params (#5388) @cmdcolin
- Fix color by CDS / calculation of phase on BED12/bigbed files (#5384) @cmdcolin
- Fix hot module reload losing app state (#5374) @cmdcolin
- Fix issue where multiple sub-menus could open up at once (#5308) @cmdcolin
- Avoid changing displayed regions set when using "Center at feature" in synteny view (#5281) @cmdcolin
- Avoid 'polynomial regex' in assembly name parsing (#5258) @cmdcolin
- Fix export of SVG hanging if track had error (#5234) @cmdcolin
- Reduce coarseStripHTML regex complexity to address codeql warning (#5233) @cmdcolin
- Fix click-and-drag starting from a inter-region padding block (#5226) @cmdcolin
- Add cancellation stop tokens for linear read arc/cloud displays (#5221) @cmdcolin
dependencies
documentation
- Add PAG 2026 user tutorial (#5340) @garrettjstevens
enhancement
- Show full dotplot when zoomed all the way out (#5387) @cmdcolin
- Switch to pnpm as package manager and add ESM "exports" to packages (#5382) @cmdcolin
- Re-organize 'track action' menu items into a submenu (#5378) @cmdcolin
- Remove BroadcastChannel from SessionLoader (#5375) @cmdcolin
- Allow plugins to make custom radio items for synteny import forms (#5373) @cmdcolin
- Allow easily filtering samples in the variant feature details by genotype/dosage (#5366) @cmdcolin
- Allow clicking transcript subfeatures of a gene glyph (#5363) @cmdcolin
- Add --excludeTracks to jbrowse text-index (#5354) @cmdcolin
- Use custom 'jexl' fork with multi-statement evaluation and template strings (#5353) @cmdcolin
- Search indexedDB for old sessions when using a local- type URL (#5346) @cmdcolin
- Filter out defaults from session snapshots (#5339) @cmdcolin
- Add general concept for showing legends on tracks (#5337) @cmdcolin
- Improve mouseover and clicking on mismatches/modifications on SNPCoverage (#5336) @cmdcolin
- Create layout optimizations for deep RNA-seq data (#5330) @cmdcolin
- Filter sashimi arcs by score (#5329) @cmdcolin
- Multiple optimizations for alignments tracks (#5326) @cmdcolin
- Add WASM code for unzipping in CRAM, BAM, BigWig, Tabix, etc. (#5320) @cmdcolin
- Optimizations for multi-wiggle tracks (#5318) @cmdcolin
- Add optional directional 'chevrons' to the gene glyphs (#5317) @cmdcolin
- Collapse introns transcript selector (#5316) @cmdcolin
- Avoid "import form flash" during loading (#5314) @cmdcolin
- Avoid drawing tick labels that overlap block boundaries (#5312) @cmdcolin
- Create pluggable glyph system for canvas feature renderer (#5311) @cmdcolin
- Create optimizations for alignments track (#5310) @cmdcolin
- Improve bigwig Y-scalebar label legibility (#5307) @cmdcolin
- Make BAM and CRAM adapters use assembly sequence adapter (#5305) @cmdcolin
- Add gridlines option for SVG export (#5303) @cmdcolin
- Aggregate insertion stats in on SNP coverage track (#5301) @cmdcolin
- Add "tiled window manager" ...
Release v3.7.0
Hi everyone,
This is a big release on many fronts! Here are some highlights
JBrowse 2 genome hubs https://genomes.jbrowse.org
We created a new website at https://genomes.jbrowse.org that features new JBrowse 2 instances for over 50,000 species. This massive effort is primarily driven by bulk loading data curated by the UCSC genome browser team, both their main browsers and GenArk hubs, which have data for thousands of NCBI RefSeq (curated) and GenBank genomes
All of these JBrowse 2 instances are available on both the web and on the desktop app
Users can even browse "synteny views" between the different hubs by opening a liftOver track, see https://genomes.jbrowse.org/demos/ for example
Screenshot of hg38 vs hs1, as seen in the demos page
Synteny and dotplot viewer improvements
We added some new features to the dotplot and synteny view, including:
- Opacity/transparency slider
- Min length slider
- Easy picker for new color schemes
- Auto-diagonalization to reorder chromosomes
- "Location markers" for helping see where you are in large alignments
A screenshot of the grape vs peach with "Color by Query" enabled in the dotplot and synteny view
Screenshot of the location markers, which help orient where you are in large alignments
Draw amino acids on Gene glyphs
The setting "Color by CDS" added the ability to draw amino acid letters (and was thus renamed "Color by CDS and draw amino acids").
This can help with detailed investigations of protein structures, which is an area we are actively developing (see https://github.com/GMOD/proteinbrowser for more information)
Create 'Linked read display' for Alignments tracks
Users can now see paired-end reads and supplementary alignments as linked entities using the "Linked reads display". This can be particularly useful for structural variant inspection.
We included a variety of specialized options to help users dig into their data, including:
- Show/hide proper pairs
- Show/hide 'singletons' (reads without pairs or supplementary alignments)
- Coloring schemes that highlight misoriented pairs and abnormally large insert sizes
- And more
Screenshot showing the "Linked reads display" with PacBio, Nanopore, and Illumina paired-end reads. The long reads with split alignments are colored salmon and light blue so that you can see the flip in orientation from positive to negative, and back to positive again. The short paired-end reads are colored navy and green to show the misoriented pairs
Screenshot showing a variety of SV types with our mock test data
Improved modified reads plotting
Some of the code for handling modifications was given a fresh refactor, which fixed bugs with 'duplex' data where modifications are stored on both a positive and negative pass on the same read
Here is an example of a screenshot showing chromatin accessibility via introduced 6mA methylation from a Nanopore dataset (source: https://epi2me.nanoporetech.com/chromatin-acc-hg002/)
Conclusion
Let us know if you have any feedback on these new features! Enjoy
3.7.0 (2025-11-07)
🚀 Enhancement
core- #5201 Add 'bulk operations' to the multi-wiggle color editor (@cmdcolin)
- #5197 Ability to make help text on menu items (@cmdcolin)
- #5183 Add ability to link supplementary alignments and pairs (@cmdcolin)
- #5136 Add ability to mouseover alignments tracks (@cmdcolin)
- #4967 Add ability to connect to genark and UCSC browsers to jbrowse desktop (@cmdcolin)
- Other
- #5195 Add ability to adjust alpha, min alignment length, color scheme and option to diagonalize synteny plots (@cmdcolin)
- #5196 Optimize gridlines component (@cmdcolin)
- #5188 Add searchable header bar to breakpoint split view (@cmdcolin)
- #5186 Fix the display of 'duplex' sequence modifications on BAM files and default to only showing mods >=10% (@cmdcolin)
- #5182 Add deletions and mismatches to the pileup mouseover (@cmdcolin)
- #5178 Add CDS protein numbering to glyphs (@cmdcolin)
- #5169 Use more accurate alpha blending for synteny view (@cmdcolin)
- #5162 Add some support for SVLEN to infer the END of a variant from VCF 4.5 (@cmdcolin)
- #5122 Link to "Genomes" in jbrowse website header bar (@cmdcolin)
🐛 Bug Fix
core- Other
- #5175 Fix for tracks from wrong assembly showing up in track list when using connections (@cmdcolin)
- #5170 Update gff-nostream dependency to fix features not found errors (@cmdcolin)
- #5169 Use more accurate alpha blending for synteny view (@cmdcolin)
- #5164 Fix SV inspector data grid filtering synchronization with circular view (@cmdcolin)
- #5161 Add missing "tmp" dependency to
@jbrowse/clipackage.json (@garrettjstevens)
🏠 Internal
core- Other
Committers: 2
- Colin Diesh (@cmdcolin)
- Garrett Stevens (@garrettjstevens) Done in 2.38s.
Done in 0.96s.
Release v3.6.5
This release contains a couple small features and bugfixes, see below
🚀 Enhancement
- #5142 Load jbrowse config passed as CLI arg to jbrowse desktop, and support .jbrowse file extension (@amorison)
- #5144 Convert GC content calculation to rolling average for speed improvement (@cmdcolin)
🐛 Bug Fix
core- Other
- #5140 Destroy old root model on pluginManager reload (@garrettjstevens)
- #5133 Fix pin track function being missing from track menu (@cmdcolin)
🏠 Internal
- #5140 Destroy old root model on pluginManager reload (@garrettjstevens)
Committers: 3
- Adrien Morison (@amorison)
- Colin Diesh (@cmdcolin)
- Garrett Stevens (@garrettjstevens)
Release v3.6.4
Hi all, This release adds a couple bugfixes
Please see the release notes below
3.6.4 (2025-07-21)
🚀 Enhancement
core,web-core- Other
- #5116 Add padding if selecting search result from table (@garrettjstevens)
product-core
🐛 Bug Fix
core- Other
Committers: 2
- Colin Diesh (@cmdcolin)
- Garrett Stevens (@garrettjstevens)
