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.

The new file -> open dialog

The new file -> open dialog

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!

SNPCoverage track

SNPCoverage track

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. Although
    generate-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.

About Robert Buels

JBrowse Lead Developer
This entry was posted in Software releases. Bookmark the permalink.