JBrowse 1.9.0: VCF support, dataset switching, wiggle track dynamic scaling, REST backend
JBrowse 1.9.0 is out today, with some great new features, and lots of smaller improvements and bug fixes.
Download links:
- JBrowse-1.9.0.zip - 5.0M - Includes everything you need to display your data on the web with JBrowse, optimized for fast loading speed.
VCF variants support: we've added a new direct-access data backend for reading VCF files that have been compressed and indexed with bgzip and tabix, along with a new track type (HTMLVariants) optimized for viewing the sometimes-huge amounts of detail (particularly genotypes) associated with VCF variants.
Wiggle track types now by default choose a y-axis scale dynamically for the region being displayed (set as
"autoscale": "local"
in JBrowse configuration JSON). This is a big win for usability! Thanks to Gregor Rot and Raymond Wan for pushing for this feature!If configured to do so, JBrowse can now display a dropdown **dataset selector **on the left side of the menu bar (similar to the one in GBrowse) that lets users switch between multiple datasets in the same JBrowse installation.
The default "Simple" track selector now has a search input at the top that can quickly filter the list of displayed tracks to find the text you type.
JBrowse now ships with a REST datastore backend that lets developers serve data to JBrowse from custom back-end systems. See the JBrowse REST feature store API documentation on the GMOD wiki. And the full release notes:
Added a direct-access data backend for reading variation data directly from VCF files that have been compressed with
bgzip
and indexed withtabix
. See the JBrowse Configuration Guide on the GMOD wiki for details about how to add directly-displayed VCF files (issue #211).Added a new
HTMLVariants
track type based on HTMLFeatures with a feature-details popup optimized for displaying variant details.Added a text box at the top of the simple (i.e. the default) track selector that finds tracks in the track list matching the typed text (issue #210).
Added support for
autoscale: "local"
in Wiggle, FeatureCoverage, and SNPCoverage tracks, which automatically sets the scale of the y-axis based on the range of the data being displayed in the current view. Thanks to Gregor Rot and Raymond Wan for championing the need for this (issue #203).Added an optional dropdown selector in the menu bar that allows switching between multiple datasets. To enable it, add a
datasets
array in your JBrowse configuration, and set adataset_id
in each of thetrackList.json
(or other) files that are optionally loaded by the dataset selector. See the JBrowse Configuration Guide on the GMOD wiki for details (issue #134).Added a new datastore class,
JBrowse/Store/SeqFeature/REST
that fetches data from any back end system that implements the simple REST API it uses. See the JBrowse Configuration Guide for details on how to implement its REST API. Thanks to Brett Thomas, Daniel Troesser, and Brad Chapman for pointing out the need for this (issue #227).By default, JBrowse now continuously updates the browser's URL bar to contain a URL that will show the current JBrowse view directly. This is enabled by default only if JBrowse is running from the default index.html included in the JBrowse distribution.
HTMLFeatures, Alignments, and Alignments2 tracks now accept a
maxHeight
configuration variable specifying the maximum displayed height of a track in pixels. Features that would cause the track to grow beyond its maximum height will not be drawn (issue #222).The
refSeqDropdown
configuration variable; the reference sequence selector is now shown for any number of reference sequences, with its length limited by therefSeqSelectorMaxSize
variable (see next item).Added support for optional
refSeqSelectorMaxSize
andrefSeqOrder
global configuration variables that set the maximum length of the reference sequence dropdown selector, and specify the sort order of the reference sequences in that selector, respectively. One instance in which this is particularly useful is in displaying annotations on early-stage, incomplete genomic assemblies: to display the N biggest contigs in the assembly in the reference sequence selector dropdown, one can setrefSeqOrder
tolength descending
, and setrefSeqSelectorMaxSize
to N. Thanks to Ignazio Carbone for pointing out the need for this. (issues #234 and #235).Fixed some bugs causing memory leaks when scrolling and zooming, especially on tracks with a lot of data like BAM tracks. Thanks to Gustavo Cerquiera for pointing this out (issue #220).
HTMLFeatures tracks now accept
style->label
andstyle->description
configuration variables variable that can be set to a function callback that returns a string with the feature's label or long description, respectively (issue #9).Wiggle/XYPlot, Wiggle/Density, and FeatureCoverage tracks now accept function callbacks in their
style->pos_color
,style->neg_color
,style->bg_color
, andstyle->clip_marker_color
configuration variables. Function callbacks are passed two arguments: the feature object (with start bp, end bp, and score of the quanititative region being shown, and the track object (which can be used to access track configuration data, along with many other things). (issue #133).Wiggle/XYPlot tracks now accept an array for their
variance_band
argument, allowing users to set the position of the variance bands to show (issue #133).Wiggle/XYPlot tracks now accept a
style->variance_band_color
configuration variable, allowing users to set the colors of the variance bands. The variance band color should usually be specified with a partial opacity. Default is 'rgba(0,0,0,0.3)', which is black with 30% opacity (issue #133).Added an "About JBrowse" popup dialog, which supports an
aboutThisBrowser
configuration stanza containing a title for the main browser window, and a description to be shown in a pop-up dialog when the title is clicked (issue #206).Where possible (i.e. supported by the data store), JBrowse will now pop up a warning if a local data file is opened that contains no data for the current reference sequence (issue #178).
Fixed bug in which hard- and soft-clipped regions were erroneously counted toward the overall length of a BAM alignment (issue #229).
Fixed bug in which dragging the vertical scroll bar marker on the right side of the track pane did not behave correctly. (Julien Smith-Roberge, issue #223).
Fixed bug in which the navigation location for some reference sequences can get messed up when ref.start != 0, or ref.end != ref.length (issue #215).
Fixed bug in which navigating via sequence dropdown selection ignores previous location on selected sequence, whereas with navigation text box entering just a sequence name navigates to previous location on that sequence (if visited previously). Thanks to Gregg Helt for implementing this fix (issue #216).
Fixed bug in which the initial default view of a previously unviewed reference sequencestarts at 80% centered view, but any use of reference sequence selection pulldown takes it to 100%. Big thanks to Gregg Helt for implementing this fix (issue #217).
Fixed bug in which iframe popups did not display correctly in Internet Explorer 9. Thanks to Steffi Geisen for pointing this out (issue #233).
Improved JSON syntax error messages in server-side scripts (issue #214).
Increased the default display timeout (
blockDisplayTimeout
) on HTML-based features tracks from 5 seconds to 20 seconds.Added a
new-plugin.pl
helper script that makes the skeleton of a new JBrowse plugin.Added an
add-json.pl
helper script that advanced users can use to set arbitrary value in JSON files from the command line.Fixed a bug in which the
--conf
option toprepare-refseqs.pl
did not support comments in JSON conf files (issue #213). Thanks to Keiran Raine for pointing this out.Fixed some missing dojo/dijit nls directories in the non-dev release zipfile.
Fixed a bug with handling of timeout events in HTMLFeatures tracks. Thanks to Matt Henderson of KBase for pointing this out.