JBrowse 1.8.0: opens local files, new BAM track types, new plugin system
JBrowse 1.8.0 is finally here, with some great new features, and lots of smaller improvements.
Download links:
- 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.
[caption id="attachment_513" align="alignnone" width="594"]](filedialog.png) The new file -> open dialog[/caption]
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!
[caption id="attachment_515" align="alignnone" width="790"]](snpcoverage.png) SNPCoverage track[/caption]
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.
- Added a flexible plugin system whereby external code can be loaded as part of JBrowse. Plugin JavaScript has full access to customize nearly everything in JBrowse. The plugin system is quite new, but many hooks are available that plugins can use to safely modify JBrowse's behavior, and more are on the way. See the JBrowse wiki for details on how to write your own plugins. Thanks to Gregg Helt and the other members of the WebApollo project for helping to drive development of the new plugin system.
- JBrowse feature name indexing (
generate-names.pl
) now uses an all-new hash-based filesystem backend. Althoughgenerate-names.pl
now 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.featureScale
configuration 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
description
configuration 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.