This release includes several important improvements including
- Lazily loading assembly refNames: previously when you had multiple assemblies in your config, it would load all their refNames at browser startup. Now, it only fetches refNames when you request to use an assembly.
- Simplified "synteny track selector" on the dotplot and synteny import forms
- Improved documentation! The entire jbrowse 2 documentation has been overhauled, and the monolithic user guide, config guide, and developer guide pages have been split into smaller pages. We also now auto-generate documentation on our config and state tree models, and have a search bar
- Improved speed on alignments tracks: a small optimization was made for alignments tracks that can improve performance on alignments tracks by 30% or so especially on short reads
Figure showing improved speed on short read alignments of the refactor (this release) vs main (which was v2.1.7)
Note that the changes to allow lazy loading assemblies may have somewhat changed the "contract", so if your code is using the assemblyManager directly in any places, please be aware of this change. Proper usage of the assemblyManager API uses either
- use assemblyManager.get(assemblyName) which can return undefined initially, but then this initiates the lazy load and can be caught by reactivity of wrapping your components in observers
- use assemblyManager.waitForAssembly(assemblyName) function, which is asynchronous but returns a promise. this avoids the initial return undefined behavior
- avoid directly accessing e.g. assemblyManager.assemblies
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.
See "Packages in this release" in the changelog for links to packages published on NPM.
- #3296 Add option to use OAuth "state" param in internet accounts (@garrettjstevens)
- #3285 Use typescript version of @gmod/cram (@cmdcolin)
🐛 Bug Fix
- Colin Diesh (@cmdcolin)
- Garrett Stevens (@garrettjstevens)
- Scott Cain (@scottcain)