JBrowse 1.7.3 bugfix release

JBrowse 1.7.3 has been released, containing fixes for some more issues found in the 1.7.2 release and earlier.  Remote BAM access is rather difficult to get right, thanks very much to the people who continue to step forward to report and help correct problems with JBrowse displaying their BAM data.

Files for download:

Changes in this release:

  • Fixed several more bugs in the BAM data backend that prevented
    display of some BAM files. Thanks to Gleb Kuznetzov for help in
    isolating these.
  • Fixed bug in display of faceted track selector in which the facet
    titles were taking up too much vertical height. Thanks to Steffi
    Geisen for pointing this out.
  • “Alignments” tracks now parse an alignment’s CIGAR string if it
    does not have an MD field, and display mismatches and skipped
    sequence regions (particularly important for RNA-seq alignments).
    Thanks to Gregg Helt for providing the sample dataset used to test
  • Added support for a showReverseStrand config variable to Sequence
    track that, if set to false, turns off display of the reverse
    sequence strand.
  • “Alignments” tracks now show reads with missing mate pairs with a
    red crosshatched pattern instead of with a red border.
  • Added an Apache .htaccess file to the JBrowse root directory that
    enabled CORS by default for all files under it, if AllowOverride is
  • Fixed bug in which the vertical scroll position can sometimes be
    set too far down when zooming in and out.
  • Fixed some bugs in server-side formatting code for feature tracks:
    data was recorded multiple times in JSON files in some
    circumstances. Thanks to Volodymyr Zavidovych and Steffi Geisen
    for pointing this out.
Posted in Software releases | Leave a comment

JBrowse 1.7.2 bugfix release

JBrowse 1.7.2 has been released, containing a fix for some further BAM issues found in the 1.7.1 release.  Thanks so much to everyone who has worked with me to isolate problems in JBrowse’s BAM support.  The more people report problems, the more bulletproof the BAM backend gets.

Files for download:

Changes in this release:

  • Fixed more bugs in BAM backend that failed to load some BAM files, including BAM files containing no alignments. Thanks to John St. John for his assistance in isolating the problem.
Posted in Software releases | Leave a comment

JBrowse 1.7.1 bugfix release

JBrowse 1.7.1 has been released, containing fixes for some issues in the 1.7.0 release.

Files for download:

Changes in this release:

  • Fixed bug in which bars below the origin of Wiggle/XYPlot were
    drawn incorrectly (issue #161). Thanks to GitHub user @makela for
    pointing this out.
  • Wiggle/XYPlot tracks now by default draw a horizontal line at the
    origin, and support a style.origin_color configuration variable
    to set its color or turn it off.
  • Fixed bug in BAM backend that caused an infinite loop and/or
    browser crash with some BAM files. Thanks to Gleb Kuznetzov for
    pointing this out.
Posted in Software releases | Leave a comment

JBrowse 1.7.0, now with data export, direct BAM display, and much more

I am pleased to announce the release of JBrowse 1.7.0, which includes a great many enhancements both large and small.  Very exciting!

First, the download links:

  • JBrowse-1.7.0.zip – 2.9M – Includes everything you need to display your data on the web with JBrowse, optimized for loading speed.
  • JBrowse-1.7.0-dev.zip – 27.4M – Primarily for developers. Includes additional developer documentation, developer tests suites, and full copies of Dojo and Dijit.

Now for the big new features.

Firstly, JBrowse can now quickly and efficiently display alignment data directly from BAM files over the web, with no need for any intermediate formatting steps.  Just put your .bam and .bai files on your web server, add a few lines of configuration to point JBrowse at them, and go!  Moreover, JBrowse has two new track types optimized for displaying alignment data: new “Alignments” track type, showing basepair differences and insertions between aligned reads and the reference (using a BAM alignment’s MD field), and a new FeatureCoverage track type that generates a depth-of-coverage plot from a BAM file (or from any other source of feature data).  Many thanks to Thomas Down and his Dalliance Genome Browser project, from which the JBrowse BAM data backend was derived.

The second headline feature of this release is long-awaited support for exporting and saving  sequence and annotation data in FASTA, GFF3, bed, bedGraph, and Wiggle formats.  Just turn on the track of interest and click on its track label to bring up a new menu of things you can do with that track, one of which is “Save track data”.  This has been one of the top features users have been requesting for a long time, and now it’s finally here!

Third, we have two important enhancements to JBrowse’s already-excellent support for BigWig quantitative data: a new Wiggle/Density track type, analogous to GBrowse’s popular wiggle_density track type, that shows quantitative data using varying intensity of color. Additionally, the existing Wiggle/XYPlot supports a new bg_color option that, if set, provides a background color for all data points in the track, making it easy to distinguish between regions with no data, and regions with 0-valued data.  Many thanks to Steffi Geisen at the University of Granada for her continued help driving progress on this and many other issues.

Read on for the exhaustive list of changes in this release, including bug fixes, more keyboard navigation enhancements, colored DNA basepairs, more configuration options, and speed enhancements.

1.7.0 2012-11-05 19:22:17 America/New_York

  • Added a new direct-access storage driver for BAM files, removing
    the need for bam-to-json.pl. This new method of BAM access is
    far superior to the old bam-to-json.pl in nearly every way,
    except in browser compatibility. Like the BigWig direct access
    backend added in JBrowse 1.5.0, it is based on code from Thomas
    Down’s Dalliance Genome Explorer, and works in all major browsers
    except Internet Explorer, because IE lacks support for the
    necessary web standards. It may work with Internet Explorer 10,
    but this has not been tested yet.
  • Added a new Alignments track type designed to work seamlessly
    with BAM files. This track type shows basepair differences and
    insertions between aligned reads and the reference, and highlights
    reads with missing mate-pairs in red.
  • Added the ability to export track data in FASTA, GFF3, bed,
    bedGraph, and Wiggle formats (issue #104). To export data, turn on
    the track of interest, then click on its track label to bring up
    the track menu, and select “Save track data”.
  • Added a new Wiggle/Density track type, analagous to the GBrowse
    wiggle_density glyph type. Shows the Wiggle information using
    varying intensity of color (issue #66). Renamed the Wiggle track
    to Wiggle/XYPlot, and made the old Wiggle track type an alias
    to Wiggle/XYPlot.
  • Both Wiggle/XYPlot and Wiggle/Density now support a style ->
    option. Color-density plots blend the pos_color or
    neg_color into the bg_color in amounts that vary with the
    wiggle data, and xyplots fill the background color behind all
    points that have data present, regardless of value. bg_color
    defaults to off for xy xplots, and semi-transparent gray for
    density plots. Setting this makes it easier for users to
    distinguish at a glance between regions with no data, and regions
    with a value of 0.
  • Added a new FeatureCoverage track type, which shows a
    dynamically-computed XY-plot of the depth of coverage of features
    across a genome. One good use of this track type is to provide a
    quick coverage plot directly from a BAM file. However, since this
    track calculates coverage on the fly, it can be slow when used with
    large regions or very deep coverage. In this case, it is
    recommended to generate a BigWig file containing the coverage data,
    and display it with a Wiggle/XYPlot or Wiggle/Density track.
  • DNA bases are now displayed with color-coded backgrounds, allowing
    basepair information to be discerned when zoomed somewhat further
    out, when base letter cannot be drawn. Colors are also designed to
    match the base-mismatch colors used in Alignment tracks, enabling
    clearer SNP visualization.
  • Added a vertical line cursor and labels showing the current
    basepair position of the mouse when hovering over the scale bar, or
    when doing a rubber-band zoom (Erik Derohanian) (issue #32).
  • Added an animation to make it easier to see where in the track
    selection list a closed track has gone, when using the simple track
    selector (issue #151).
  • Information dialog boxes are now easier to dismiss: clicking
    anywhere outside of them, or pressing any key, will make them go
  • Improvements to feature track configuration:
    • Feature tracks no longer use the style.subfeatureScale
      configuration variable to determine whether to show subfeatures.
      Instead, subfeatures are shown if the parent feature, when shown on
      the screen, is wider than style.minSubfeatureWidth, which
      defaults to 6 pixels.
    • Make explicitly-configured track labelScale, histScale, and
      descriptionScale not be modulated by the feature density: only
      use the feature density to pick the scale defaults
  • The default feature-detail dialog box now shows more information, adding:
    • the feature’s exact length
    • full details of its subfeatures
  • Added a locationBoxLength configuration variable that controls
    the width of the location box. In addition, the default width of
    the location box is now also smarter. Instead of a fixed 25
    characters, it is calculated to fit the largest location string
    that is likely to be produced, based on the length of the reference
    sequences and the length of their names.
  • Pressing SHIFT+-up/down arrow keys now cause the genome view to
    zoom in and out. If ALT is added, it zooms further. Thanks to
    Karsten Hokamp for the excellent suggestion.
  • Holding SHIFT while scrolling left and right with the arrow keys
    causes the view to scroll further.
  • Added a theme configuration variable to allow changing the
    graphical theme to something different from the default “tundra”.
    However, no other themes are implemented yet.
  • Greatly sped up rendering of HTML subfeatures by caching the
    heights of subfeature HTML elements.
  • Fixed bug in which the genome view executed a double-click zoom when
    users rapidly clicked on multiple track ‘close’ buttons.
  • Fixed bug with the genome view scrolling in response to arrow keys
    being pressed when typing in the location box.
  • Fixed bug in which the score display in Wiggle tracks would
    sometimes flicker when moving the mouse.
Posted in Software releases | 1 Comment

JBrowse 1.6.5 bugfix release

I’m pleased to announce the release of JBrowse 1.6.5, containing some small new features, plus fixes for some issues in the 1.6.4 release.

Files for download:

Changes in this release:

  • The location box now shows the length of the currently visible
    region in parentheses. For example: ctgB:1244..3566 (2.32 Kb).
    Thanks to Karsten Hokamp for the suggestion!
  • The arrow keys on the keyboard can now be used to pan and scroll
    around the genome view.
  • Wiggle track mouseover cursors now display the score with only 6
    significant digits, avoiding confusion over approximations
    introduced by scores being converted to IEEE floating-point numbers
    (as for BigWig files) and back to text.
  • The faceted track selector now renders any HTML that may be present
    in the track metadata by default. To turn this off, it now accepts
    an escapeHTMLInData option that, if set to true or 1, will
    not render the HTML, but will instead display the raw code
    (issue #145).
  • Upgraded to a more recent version of jszlib, which contains some
    important bugfixes (issue #157).
  • Fixed bug dealing with very large regions with the same value in
    canvas-based Wiggle tracks (also issue #157).
  • prepare-refseqs.pl now by default uses a more scalable directory
    structure for storing sequences. This fixes problems some users
    were experiencing with large numbers of reference sequences
    (issue #139).
  • ucsc-to-json.pl now supports a --primaryName option allowing
    the users to alter which UCSC data field is displayed by JBrowse as
    the primary name of the features in a track. Also,
    ucsc-to-json.pl now treats as indexable names all UCSC data
    columns called “name”, “alias”, or “id” followed by zero or more
    digits. Thanks to Steffi Geisen for this suggestion.
  • Fixed “Duplicate specification” warnings coming from
    flatfile-to-json.pl and remove-track.pl.
  • Fixed bugs in which both the first few and the last few bases of a
    reference sequence were not displaying correctly in a DNA track.
Posted in Software releases | Leave a comment

JBrowse 1.6.4 bugfix release

JBrowse 1.6.4 has been released, containing fixes for some small issues in the 1.6.3 release.

Files for download:

Changes in this release:

  • Improvements to the scalability of generate-names.pl. Many
    thanks to Steffi Geisen for her ongoing help with this.

    • Users can now manually specify which tracks will be indexed to
      enable autocompletion and searching for their feature names in
      the JBrowse location box.
    • The lazy-trie name indexing structure now correctly handles the
      case of large numbers of features that may share the same
      name. Before, it was generating files that were too large for
      the client to handle.
  • Fixed off-by-one error in Wiggle track display code: wiggle data
    was incorrectly displayed shifted one base to the left of its
    proper position. Thanks to Steffi Geisen for noticing this.
  • Fixed bug in which the reference-sequence selection box did not
    automatically update in all situations to reflect the current
    reference sequence.
Posted in Software releases | 1 Comment

JBrowse 1.6.3 bugfix release

JBrowse 1.6.3 has been released, containing fixes for some small issues in the 1.6.2 release.

Files for download:

Changes in this release:

  • Fixed bug with shift-rubberband-zooming not working on Windows
    (issue #150) (Erik Derohanian).
  • Fixed “Can’t locate JSON.pm” errors with add-track-json.pl.
  • Added a reference-sequence-selection dropdown box, similar to the
    old one, that is shown by default if fewer than 30 reference
    sequences, otherwise it’s off unless refSeqDropdown: true is set
    in the configuration (issue #138).
  • Fixed bug in which popup dialog boxes showing other websites showed
    the website in only the top portion of the dialog box. Only
    present in some browsers (issue #149).
  • Fix coordinate display bug in feature detail popups. The feature’s
    position was being displayed in interbase coordinates, but should
    be displayed in 1-based coordinates. Thanks to Steffi Geisen for
    pointing this out.
  • Added a style.height option to Wiggle tracks to control the
    track’s height in pixels (issue #131) (Erik Derohanian).
  • Added support for a style.trackLabelCss configuration variable to
    allow customizing the appearance of the label for a particular
    track (issue #4) (Erik Derohanian).
Posted in Software releases | 1 Comment

JBrowse 1.6.2 bugfix release

JBrowse 1.6.2 has been released, containing fixes for some small issues in the 1.6.1 release.

Files for download:

Changes in this release:

  • Fixed feature-layout performance problem when zoomed very far in
    on features that are much larger than the viewing window.

  • Added a default menuTemplate to all HTML-based features, so that
    all HTML features now have a right-click menu by default.

  • Add css configuration variable that allows users to specify
    either strings or URLs containing CSS to add.

  • improved bin/ucsc-to-json.pl error messages

  • bin/add-track-json.pl now replaces tracks in the target
    configuration if they have the same label.

Posted in Software releases | 1 Comment

@rbuels and JBrowse at the Semantic Web BioHackathon 2012

I had the great honor of being invited to the BioHackathon 2012, held this past week in Toyama, Japan and funded by Japan’s National Bioscience Database Center (NBDC) and Database Center for Life Science (DBCLS).  It’s been an exhausting week of immersing myself in Semantic Web technologies: RDF, SPARQL, SADI, and lots and lots of ontologies.  A lot of work still needs to be done, but there really are revolutionary capabilities coming to bioinformatics from this direction.

At the hackathon, I worked on a SPARQL-based data backend for JBrowse, which will be released as part of the upcoming JBrowse 1.7.0.  It is shaping up to be surprisingly fluid, especially given the less-than-speedy reputation of today’s triple stores.

Until it is merged into master, work on the JBrowse triple store can be seen at https://github.com/GMOD/jbrowse/compare/master…triplestore

Posted in Development | Leave a comment

JBrowse 1.6.1 bugfix release

JBrowse 1.6.1 has been released, containing fixes for some small issues in the 1.6.0 release.

Files for download:

Changes in this release:

  • JBrowse now attempts to prevent feature labels being obscured by
    track labels by keeping the feature labels a bit further away from
    the left side of the view, if possible.
  • Fixed bug in which welcome page was not shown when JBrowse has not
    been configured yet (issue #130).
  • Fixed bug in which passing tracklist=0 (as when running the
    browser in embedded mode) caused JBrowse to crash (issue #132).
  • Added dependency on Bio::GFF3::LowLevel::Parser 1.4, which has an
    important bugfix related to multi-location features (issue #109).
Posted in Software releases | 1 Comment