JBrowse 1.8.0 is finally here, with some great new features, and lots of smaller improvements.
- JBrowse-1.8.0.zip - 3.3M - Includes everything you need to display your data on the web with JBrowse, optimized for fast loading speed.
- JBrowse-1.8.0-dev.zip - 28M - Primarily for developers. Includes additional developer documentation, developer test suites, and full copies of Dojo and Dijit. The number 1 new feature is: JBrowse can now open local BAM, BigWig, and GFF3 files that reside on the user's computer, without the need to transfer any data over the network. For example, if a user is viewing a genome in JBrowse 1.8 at her favorite database website, and she has a 20GB BAM file on her computer for that same genome, she can just open her local BAM file and view it alongside the data from the website, without needing to upload the BAM file anywhere. Give this new feature a try, and let us know how it goes! The File->Open dialog works for remote URLs too, or even mixtures of local files and URLs.
There are also two new track types designed for even better display of BAM data:
First, there is the new
Alignments2 track type, which is a faster,
<canvas>-based track for viewing alignments, including base-level indels and mismatches. It is much more performant when viewing very dense or deep sets of alignments, and is meant to largely replace the HTML-based
Alignments track type that was introduced in JBrowse 1.7.0.
Second, there is a new
SNPCoverage track, that draws the coverage of alignment features along the genome, along with a graphical representation of SNP distribution, and tables showing frequencies for each SNP. Thanks and great job to Julien Smith-Roberge, a co-op student at the Ontario Institute for Cancer Research for the initial implementation of this!
The last headline feature, which will be of interest primarily for developers, is the introduction of a new plugin system for JBrowse. It's still a work in progress, the details of the plugin API will probably not be finalized for a while, but the broad strokes of it are set out on the JBrowse Plugin API page on the GMOD wiki. If you are interested in living on the bleeding edge and developing a JBrowse plugin, contact the gmod-ajax mailing list, or contact me directly.
And now for the full release notes:
- Added new "File -> Open" function that can display BAM, BigWig, and GFF3 files located on the user's machine, at remote URLs, or a mixture of both. When opening local files, everything is done locally, no data is transferred to the server.
- Added a new "SNPCoverage" track type, designed for use with BAM files (but which works with any features that have MD fields), that shows a coverage plot with a graphical representation of SNP distribution, and tables showing frequencies for each SNP.
- Added a new "Alignments2" track type, which is a much faster implementation of the "Alignments" track type. It is more suitable for very deep BAM alignments, but has a slightly different configuration scheme.
- JBrowse feature name indexing (
generate-names.pl) now uses an all-new hash-based filesystem backend. Although
generate-names.plnow takes longer to run, it can handle much larger numbers of names to index, and uses much less RAM to do it. As a side benefit, the JBrowse location box's autocompletion feature is now faster and more reliable. Thanks to Steffi Geisen and Volodymyr Zavidovych for pointing out the issues with name indexing scalability and reliability.
- Added support in "HTMLFeatures", "Alignments", and "Alignments2"
tracks for a
style.featureScaleconfiguration variable, which, if set, specifies a minimum zoom scale (pixels per basepair) for displaying features. If zoomed out more than this (i.e. fewer pixels per bp), either histograms or a "too many features" message will be displayed.
- Changed binning algorithm of "FeatureCoverage" tracks when zoomed out. Now calculates the average base coverage in each bin, rather than the absolute number of features that overlap each bin.
- "HTMLFeatures" tracks now accept a comma-separated list of field
names in their
descriptionconfiguration variable, allowing users to customize which attribute(s) of a feature hold the description.
- Added a timeout to HTMLFeatures and Alignments tracks to prevent data-heavy tracks (like BAM tracks with very deep coverage) from freezing or crashing a user's browser.
- Improved graphical look of canvas-based tracks during zoom operations. Thanks to Mitch Skinner for implementing this!
- Fixed a bug in which the Y-axis scale for feature density histograms in HTMLFeatures tracks was sometimes drawn incorrectly.
- Greatly improved speed and responsiveness of BAM data backend.
- Fixed yet another bug that prevented display of some types of BAM files.