JBrowse 1.5.0 released, includes direct BigWig access!

I’m very pleased to announce the release of JBrowse 1.5.0! There are three headline features in this release. First, we’ve integrated a direct-access BigWig data backend, adapted from the Dalliance Genome Explorer that can read wiggle data directly from compressed BigWig files stored on your web server. Second, there is now a beautiful, full-featured canvas-based Wiggle track type. Third, we have a very powerful new click system that allows JBrowse administrators complete flexibility in configuring what happens when a user left- or right-clicks a feature in an HTML-based feature track, including right-click context menus.

A demonstration of JBrowse 1.5.0 showing a test BigWig-based wiggle track (alongside an old-style image-based wiggle track for comparison) can be seen here, and a whole-genome RNA-seq profile of tomato, with corresponding gene models, can be seen here.

As usual, this release comes in two flavors: the “minimal” release (JBrowse-1.5.0-min.zip – 2.8M) that includes only the software and documentation necessary to format your own data and run the browser, and the “full” release (JBrowse-1.5.0-min.zip – 27.2M) that includes the developers’ test suite, more sample data files, and developer documentation.

Here is the full list of new improvements in 1.5.0:

  • Added a direct-access storage driver for BigWig data files, based
    on code from the Dalliance Genome Explorer by Thomas Down. BigWig
    file access is supported now by the current versions of all major
    browsers except Internet Explorer (which is expected to work when
    version 10 is released along with Windows 8).

  • Added a canvas-based wiggle track implementation for quantitative
    data that, when used with the new BigWig storage backend, removes
    the need to pre-generate rendered images of wiggle data. Its
    display is also highly configurable, with configuration options
    modeled on the GBrowse wiggle_xyplot glyph type
    (i.e. Bio::Graphics::Glyph::wiggle_xyplot).

  • Added highly configurable behavior for left-clicking and
    right-clicking features in HTML-based feature tracks. If a
    menuTemplate option is specified in the track configuration,
    right-clicking a feature brings up a context menu, the items in
    which can be configured to do nearly anything, but that are easy to
    configure for the very common use case of wanting to display
    content from a certain URL. Feature left-clicks are also
    configurable using the same mechanism. Thanks to Alexie
    Papanicolaou and Temi Varghese for the initial implementation of
    context menus.

  • Improved the default HTML feature left-click dialog box. It is now
    both prettier, and more comprehensive, displaying all available
    data for the feature.

  • Added a small helper script, add-track-json.pl that developers
    and advanced users can use to programmatically add a block of track
    configuration JSON to an existing JBrowse configuration file.

  • Improved / fixed vertical alignment of sub-elements of HTML
    features, including subfeatures and the arrowheads that show
    strand. All elements in a feature are now vertically centered by

Posted in Software releases | Leave a comment

JBrowse 1.4.2 released

JBrowse 1.4.2 has been released, containing some small fixes for issues in the 1.4.1 release.

Changes in this release:

  • Restore support for histScale, subfeatureScale, and labelScale in --clientConfig command-line options and track configuration JSON. Thanks to Hernán Bondino for pointing this out.
Posted in Software releases | Leave a comment

JBrowse 1.4.1 released

JBrowse 1.4.1 has been released, containing some small fixes for issues in the 1.4.0 release.

Changes in this release:

  • Made displayColumns option for the faceted track selector
    case-insensitive, and interpret a column name of “Name” as meaning
    the track’s key.
  • bam-to-json.pl now filters out alignments that are not at least
    two nucleotides in length. Thanks to Tristan Lubinski for
  • Introduced limits on the sizes of cookies that can be set,
    preventing ‘400 bad request’ errors (issue #113).
Posted in Software releases | 1 Comment

JBrowse 1.4.0 released, includes faceted track selection!

JBrowse 1.4.0 has been released!  There are two headline features in this release: a new, extremely powerful faceted track selector that makes it easy for users to search through hundreds or thousands of tracks based on their metadata, and much better support for large numbers of reference sequences, enabled by retiring the old reference sequence dropdown selector in favor of adding a new find-as-you-type feature to the location box.

A demonstration of the faceted track selector can be seen here.  This contains a snapshot of the modENCODE track metadata taken from http://data.modencode.org.  Note that the track data and reference sequences in this track selection demo are not real: the reference sequences and wiggle data are all just copies of the volvox wiggle test track from the JBrowse test suite.

As is becoming the norm, this release comes in two flavors: the “minimal” release (JBrowse-1.4.0-min.zip – 2.6M) that includes only the software and documentation necessary to format your own data and run the browser, and the “full” release (JBrowse-1.4.0-full.zip – 5.5M) that includes the developers’ test suite, more sample data files, and developer documentation.

There have been lots of improvements over the 1.3 series:

  • Added a full-featured faceted track selector for users that have
    many (hundreds or thousands) of tracks. This can be turned on by
    setting the trackSelectorType config variable to “Faceted”. See
    the JBrowse wiki for more documentation on how to use faceted track
    selection. (issue #95)
  • Removed the dropdown selector for reference sequences in favor of
    making the location box auto-complete reference sequence and
    feature names. This makes JBrowse much more scalable to large
    numbers of reference sequences. (fixes issues #3, #60, and #101)
  • Added a vertical-scrolling marker on the right side of the track
    pane, making it much easier to discern the vertical position of the
    track display. (issue #93).
  • biodb-to-json.pl and flatfile-to-json.pl now load all available
    feature data: all attributes of features are now encoded in the
    JSON and are available for use by feature callbacks. (issue #72)
  • Feature labels now do not scroll off screen if any part of the
    feature is still visible (fixes issue #62).
  • Added jbrowse_conf.json, a default JSON-format configuration file,
    to the JBrowse root directory. Makes it easier to get started
    with more advanced JBrowse configuration.
  • JBrowse instances now report anonymous usage statistics to the JBrowse developers. This data is very important to the JBrowse project,
    since it is used to make the case to grant agencies for continuing
    to fund JBrowse development. No research data is transmitted, the
    data collected is limited to standard Google Analytics, along with
    a count of how many tracks the JBrowse instance has, how many
    reference sequences are present, their average length, and what
    types of tracks (wiggle, feature, etc) are present. Users can
    disable usage statistics by setting “suppressUsageStatistics: true”
    in the JBrowse configuration.
Posted in Software releases | 1 Comment

Poliovirus / XRate demo by Oscar Westesson

Oscar Westesson has contributed a nice demonstration of using JBrowse 1.2.1 to display and compare performance of four different XRate grammars on the poliovirus genome.

View demo
Download .zip (35M)

Thanks Oscar!

Posted in News, Sites using JBrowse | Leave a comment

JBrowse 1.3.1 released

JBrowse 1.3.1 has been released, this is a minor release with fixes for some bugs found in 1.3.0.

JBrowse-1.3.1-min.zip – 2.0MB
Includes all that is needed for running JBrowse and formatting your own data.
JBrowse-1.3.1-full.zip – 4.7MB
Includes developer API documentation, developer test suites, additional sample data

Changes in this release

* Fixed memory-management bug that caused way too much RAM to be used
by FeatureTrack loading (flatfile, bam, and biodb-to-json.pl) when
loading with very large numbers of reference sequences. Big thanks
to Tristan Lubinski for help in isolating this.

* Fixed some bugs in BAM support section of setup.sh autosetup
script, thanks to Tristan Lubinski for help in isolating this as

* Added an example document with an iframe running JBrowse in
embedded mode in docs/examples/embedded_mode.html

* flatfile-to-json.pl now loads the ‘score’ attribute of features in the

Posted in Software releases | Leave a comment

JBrowse 1.3.0, a major release!

JBrowse version 1.3.0 has arrived!

We have a long list of improvements in this release, some of which have been a long time coming.  It’s full speed ahead from here: more major new features are just around the corner!

This release comes in two flavors: the “minimal” release (JBrowse-1.3.0-min.zip – 2.0M) that includes only the software and documentation necessary to format your own data and run the browser, and the “full” release (JBrowse-1.3.0-full.zip – 4.7M) that includes the developers’ test suite, more sample data files, and developer documentation.

One important note about browser support: as of this 1.3.0 release, JBrowse no longer supports Microsoft Internet Explorer 6.

And now, the Big List of New Features!

  • Added support for “rubberband” dynamic zooming, in which users can
    click and drag to select a region to zoom to. Dragging on any
    scale bar, or shift-dragging on the main track pane, triggers a
    dynamic zoom.
  • Correcting a long-standing oversight, wiggle data tracks and
    feature histograms now have numerical y-axis scales that show the
    numerical values of the data.
  • Server-side data-formatting scripts now support a –compress option
    to compress (gzip) feature and sequence data to conserve server
    disk space. Using this option requires some web server
    configuration. Under Apache, AllowOverride FileInfo (or
    AllowOverride All) must be set for the JBrowse data directories in
    order to use the included .htaccess files, and mod_headers and
    mod_setenvif must be installed and enabled. Under nginx a
    configuration snippet like the following should be included in the

          location ~* "\.(json|txt)z$" {
                   add_header Content-Encoding  gzip;
                   gzip off;
                   types { application/json jsonz; }
  • flatfile-to-json.pl: now much faster and more memory-efficient,
    especially for GFF3 files. Remember that ‘###’ directives are very
    important to have in large GFF3 files! Also removed nonfunctional
    –extraData switch.
  • Added ability to turn off some JBrowse UI panels via URL arguments
    to the default index.html, or via arguments to the Browser
    constructor itself. Can dynamically turn off the navigation box,
    the overview panel, and the track list, respectively. When all of
    these are off, and if run in an iframe, JBrowse is running in an
    “embedded mode” that looks similar to the output of GBrowse’s
    gbrowse_img script, with the exception that the view in this case
    is a fully functioning, scrollable and zoomable JBrowse. See the
    GMOD wiki (http://gmod.org/wiki/JBrowse) for more on how to set up
    embedded mode. Thanks to Julie Moon, a co-op student working at
    OICR, for this work!
  • Improved graphical look and feel.
  • Browser support for this release:
    Google Chrome 18 perfect
    Google Chrome 17 perfect
    Mozilla Firefox 11.0 perfect
    Mozilla Firefox 10.1 perfect
    Mozilla Firefox 10.0.2 perfect
    Mozilla Firefox 3.6.28 nonfunctional
    Apple Safari 5.1.5 (Lion) perfect
    Microsoft Internet Explorer 9 good
    Microsoft Internet Explorer 8 good
    Microsoft Internet Explorer 7 minor problems
    Microsoft Internet Explorer 6 not tested
    KDE Konqueror 4.7.4 nonfunctional
    KDE Konqueror 4.5.5 nonfunctional
    Opera (all versions) not tested
  • Added an automated-setup script, setup.sh, that tries to install
    Perl prerequisites, format Volvox example data, and install Wiggle
    and BAM support (fetching samtools from SVN if necessary)
  • Navigating to JBrowse with missing or malformed configuration or
    data will now bring up an error page with useful messages and links
    to help documentation, instead of a blank white page.
  • JBrowse data directories now include an Apache .htaccess in their
    root directory that, if mod_headers is installed and AllowOverride
    FileInfo or AllowOverride All is enabled, will emit the proper HTTP
    headers to allow cross-origin XHR requests for the data.
  • A new “Help” link in the upper right, or pressing “?” on the
    keyboard, brings up a “JBrowse Help” dialog box with basic usage
    information and links to more help information.
  • Arrowheads indicating strandedness are now drawn inside feature
  • Clicking on the overview bar or the main scale bar now centers the
    view at the clicked position. In addition, while holding down
    shift, clicking in the main track panel will also center the view
    at that position.
  • Added bin/remove-track.pl, a script to remove a track from a
    JBrowse data directory. Run bin/remove-track.pl -? to see its
  • Added build instrumentation to support a JSDoc-based system of
    developer API documentation. This documentation is still far from
  • Ian Davis contributed code to add a view of the reverse strand of
    the sequence in the DNA track. Thanks Ian!
  • Fixed bug in which, for some sequence chunk sizes, the DNA bases
    would display incorrectly.
  • Added minor gridlines to the main track view.
  • Fixed a long-standing off-by-one bug where the window could not be
    scrolled to view the last base in the reference sequence.
  • Coordinates displayed in the user interface are now 1-based closed
    coordinates, which are more familiar to most users. Previously,
    the labels displayed interbase (i.e. 0-based half-open)
  • NON-BACKWARDS-COMPATIBLE improvements to the JSON format used for
    track configuration, feature data, and image data
    – initial support for a new hook system for greater
    administrator-configurability of feature display
    – support for more than one level of subfeatures
  • Miscellaneous improvements and refactoring of data-formatting Perl
  • More detailed POD-based help documentation on all scripts
  • –tracklabel options to all scripts replaced with –trackLabel.
  • New suite of integration tests, and some unit tests, for
    server-side Perl code.
  • Beginnings of a suite of Selenium-based integration tests for the
    front-end JavaScript code.
  • Support for Apple touch-based devices merged into normal
    index.html, so that the same link can be used regardless of the
    browsing platform.
  • Bug fixed in which non-stranded features do not display properly
    (a problem with the CSS styles).
Posted in Software releases | Leave a comment

JBrowse 1.2.2 released

This is a minor bugfix release, containing fixes for display of unstranded features and a correction to the tutorial HTML file that incorrectly suggested using flatfile-to-json.pl to format feature data from a BAM file.

JBrowse 1.2.2 can be downloaded from http://jbrowse.org/releases/jbrowse-1.2.2.zip

Posted in Software releases | Leave a comment

hg19 tarball updated to JBrowse 1.2.1

A new tar.gz file is available, containing a copy of JBrowse 1.2.1  with Human hg19 data.  Being based on a more recent version of JBrowse, it should work much better than the previous hg19 tarball releases.  Enjoy!

The new file is here: http://jbrowse.org/releases/jbrowse-1.2.1-hg19mini.tar.gz

Posted in Data releases, News | Leave a comment

JBrowse in Google Summer of Code 2012

Great news!  JBrowse has been accepted to Google Summer of Code 2012 under the Genome Informatics umbrella organization.  Many thanks to Reactome’s Robin Haw for shepherding the Genome Informatics organization through the application process!

Are you a college undergraduate interested in working on JBrowse this summer?  You should consider applying to Google Summer of Code to fund you for the summer!  The student application deadline is April 6, 2012.

Relevant links

Posted in Development | Leave a comment