JBrowse 1.11.0 released - hierarchical track selector, easier configuration, summary mode

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

JBrowse 1.11.0 released - hierarchical track selector, easier configuration, summary mode

Robert Buels-2
Hi all,

JBrowse 1.11.0 is out today, with some major new features, and, as
always, quite a lot of smaller bugfixes and improvements.

It can be downloaded from http://jbrowse.org/jbrowse-1-11-0/.

Firstly, JBrowse has added a third track selector type alongside the
existing Simple (small) and Faceted (large) track selectors called
Hierarchical.  It looks like the old Simple track selector (which was
the default), except it pays attention to the “category” key in a
track’s metadata, and if it is present, it organizes the tracks into
nested, collapsible panes based on that.  Also, instead of the
drag-and-drop paradigm used by the Simple track selector, the
Hierarchical track selector turns tracks on and off by just checking and
unchecking the box next to each track.  I think the checkboxes are
probably easier for new users to understand, as well, the Hierarchical
track selector is now enabled by default.  Those that prefer the old
Simple selector can always turn it on by setting trackSelector.type to
“Simple” in the jbrowse_conf.json file or the new jbrowse.conf file,
which brings me to my next item.

Secondly, JBrowse now has a additional text configuration format that is
designed to be easier to hand edit, and can coexist and interoperate
with existing JSON configuration files.  Users of GBrowse will find the
syntax very familiar, since its design borrows heavily from GBrowse’s
configuration syntax.

See the post on jbrowse.org for some graphical examples of the new
configuration format: http://jbrowse.org/jbrowse-1-11-0/

And for the final headline feature of this release, JBrowse
CanvasFeatures, CanvasVariants, and Alignments2 tracks can now be
configured to show feature density histograms or coverage plots when
zoomed too far out to display individual features.  They can take this
quantitative data from any type of JBrowse data store (including REST
stores), but most users would probably want to use a BigWig store.
One caveat: this isn’t a full-featured quantitative display like a
Wiggle/XYPlot track, so quantitative values need to all be greater than
0, and all you can really change about how it looks is its color.
Here’s an example in the new text configuration syntax of an Alignments2
track that will display either alignments from a BAM file or a coverage
plot from a BigWig file, depending on zoom level.

Of course, there are many smaller improvements and bug fixes.  Read on
for the complete release notes.

## Major improvements

  * Introduced density/coverage histogram support for CanvasFeatures,
    CanvasVariants, and Alignments2 tracks.  These track types now
    support an optional `histograms` configuration subsection that can
    contain a definition for a second datastore that holds quantitative
    data (usually either coverage depth or feature density) to be
    displayed when zoomed further out than `featureScale` (or if
    `featureScale` is not set, the scale determined by the store's
    feature density divided by `maxFeatureScreenDensity`).  Thanks to
    Richard Hayes for pushing hard for this feature.

  * Added a new "Hierarchical" track selector that shows tracks in a
    hierarchy of collapsible categories, which is now the default track
    selector.  To assign categories and subcategories to your tracks,
    set `category` or `metadata.category` attributes on each configured
    tracks in your `trackList.json`.  Thanks to the many users who have
    requested this at one time or another.

  * JBrowse now supports a new plaintext configuration format that
    users of GBrowse will find very familiar, since it is designed to
    be very similar to it.  This syntax is also much easier to
    hand-write than JSON.  The JSON configuration syntax is not going
    away, and will continue to be supported.

    Thanks to Erik Derohanian for the original implementation of this
    configuration adaptor, and Richard Hayes and Keiran Raine for
    motivating the work to polish and more fully integrate it.

  * Variables in configuration files can now be based on the contents
    of other variables.  For example, setting

        "myCustomVariable": "/some/custom/path",
        "include": "{myCustomVariable}/conf.json"

    will try to include a configuration file located at
    "/some/custom/path/conf.json".  Interpolation is done as the final
    step in configuration loading, so variables can come from anywhere
    in the configuration.

  * When JBrowse is started, if there are no reference sequences found
    in the default `dataRoot`, but the dataset selector is configured,
    JBrowse shows a simple list of links to available datasets instead
    of the "Congratulations, JBrowse is on the web" page.  Thanks to
    Saulo Aflitos for the idea and its initial implementation.

  * For users wishing to convert existing JSON configuration files to
    the new format, there is a new script, `bin/json2conf.pl`, that
    does a fair job.  Run `bin/json2conf.pl -?` for details on how to
    use it.

  * Added a new REST backend for name lookup and autocompletion.  See
    for details.  Thanks to Erik Derohanian for implementing this, and
    Ben Booth for suggesting an API design (issue #267).

  * Major performance and scalability improvements for
    `generate-names.pl`.  Now uses a different algorithm that is faster
    and more scalable than before, and no longer relies on BerkeleyDB
    for temporary storage.  This should also alleviate the need to run
    generate-names.pl with `--safeMode` in Perl 5.10 and earlier.  In
    fact, the `--safeMode argument` to generate-names.pl no longer has
    any effect.  Thanks to Cris Lawrence for pointing out the
    continuing need for more scalability.

## Minor improvements

  * Detail popups for CanvasVariants and HTMLVariants tracks now
    display the reference sequence itself instead of just "ref" in
    genotype displays.  Thanks to Cris Lawrence for requesting this.

  * Added a "save as FASTA" button to default feature detail popups
    that downloads a FASTA file with the displayed piece of reference
    sequence (issue #299).

  * `chunkSizeLimit` for VCF files now defaults to 1 MiB.  It used to
    be 15 MiB, which was really far too big for browsers to handle.

  * Added support for a `--nameAttributes` argument to
    `flatfile-to-json.pl` that takes a comma-separated list of feature
    attributes to index for name searching and completions, or 'none'
    to not make names searchable.

  * Added support for a `nameAttributes` variable in `biodb-to-json.pl`
    track configurations that can be set to an array of feature
    attribute names to to index for name searching and completions, or
    'none' to not make names searchable.

  * Add a `--category` argument to bin/wig-to-json.pl that can be used
    to set the `metadata.category` of a track.

## Bug fixes

  * Fixed a bug in NCList data backed in which feature histograms were
    often calculated very incorrectly.

  * Fixed a bug in the VCF data backend that caused not all VCF
    features to be shown in some files at some zoom levels.

Happy browsing.  ;-)

Robert Buels
Lead Developer
JBrowse - http://jbrowse.org