@gmod/jbrowse
Version:
JBrowse - client-side genome browser
195 lines (185 loc) • 11.8 kB
Markdown
---
layout: post
title: JBrowse 1.10.0: Combination tracks, better feature tracks, more glyphs, SPARQL support, and track pinning!
date: 2013-07-30
tags: ["Software releases"]
---
After a long, hard development push, JBrowse 1.10.0 is out today! There are several major improvements in this release, and a **huge** number of smaller improvements and bugfixes.
### Download links
* [JBrowse-1.10.0.zip](/wordpress/wp-content/plugins/download-monitor/download.php?id=61 "download JBrowse-1.10.0.zip") - 5.2M - Includes everything you need to display your data on the web with JBrowse, optimized for fast loading speed.
<div>SHA1 file checksum: 8dddbcbc54d5be967b1d381cb6ad8ace671536e7</div>
* [JBrowse-1.10.0-dev.zip](http://jbrowse.org/wordpress/wp-content/plugins/download-monitor/download.php?id=62 "download JBrowse-1.10.0-dev.zip") - 26M - Primarily for developers. Includes additional developer documentation, developer test suites, and full copies of Dojo, Dijit, and DojoX.
<div>SHA1 file checksum: 8856e1301d90df93ba4a644bccc48c3b4d6dc07c</div>
## Major new features
* Added powerful **combination tracks**, which can combine data from
multiple other tracks using **range, arithmetic, or masking**
** operations**. For example, a BigWig track can be masked to highlight
only regions that lie within features from a BAM track. Or the
intersection of two or more feature tracks can be calculated. To
create a combination track, select "File->Add combination track"
from the menu bar, and then add tracks to the new combination track
by dragging them into it. A huge thanks to OICR co-op students
Julien Smith-Roberge and Daniel Kasenberg for implementing this
powerful feature. It's a very significant accomplishment!
* Added** "normal", "compact", and "collapsed" feature layout options**
for canvas-based feature tracks (currently just Alignments2
tracks). Thanks to OICR co-op student Daniel Kasenberg for
implementing this!
* Greatly improved the** `JBrowse/View/Track/CanvasFeatures` track**
** type, to the point where it is probably ready for experienced**
** JBrowse users to use** in earnest. It renders features using a
modular glyph system that GBrowse users will find very familiar.
To give it a try, simply change the `type` key in an existing track
configuration to "JBrowse/View/Track/CanvasFeatures" and add a
`glyph` key to set which glyph to use. Glyphs that are currently
implemented are:
* Box - draws a box, optionally with an arrow indicating strandedness.
* Segments - draws a series of boxes connected with a line, for
features with subparts.
* ProcessedTranscript - draws CDS and UTR features, with UTRs a
different color and thinner.
* Gene - draws a group of aligned ProcessedTranscript glyphs for
mRNAs that are subfeatures of a top-level gene feature.
Each of these glyphs have been patterned as near-clones of the
(very popular) analogous glyphs in GBrowse.
* Added a **SPARQL data backend** to allow displaying features directly
from a SPARQL endpoint. Many thanks to the NDBC/DBCLS BioHackathon
2012 and 2013 participants for suggesting this and helping with
this work! See [http://www.biohackathon.org](http://www.biohackathon.org) for more on this
fantastic (and I think very important) series of hackathons.
* There is a new "Highlight" button next to the "Go" button that lets
a user quickly and easily highlight a region with the mouse.
* Added the ability to** "pin" some tracks to the top of the display**,
* so that they stay at the top of the pane while the rest of the
tracks are scrolled vertically. Thanks to the WebApollo project
for suggesting this.
* Integrated a** `maker2jbrowse` script** into the core JBrowse
distribution. You can now visualize your MAKER results in JBrowse
with a single command:
`bin/maker2jbrowse -d /path/to/your/maker/master_datastore_index.log`
Thanks to the MAKER team and Yandell lab for providing the initial
implementation of `maker2jbrowse`.
## Minor improvements
* Added support for an `addFeatures` variable in the query string of
the URL used to start JBrowse. This variable accepts feature data
in JSON format in the form:`[{ "seq_id":"ctgA", "start": 123, "end": 456, "name": "MyBLASTHit"},...}]`which, when URI-escaped and put in the query string, looks like:`addFeatures=%5B%7B%20%22seq_id%22%3A%22ctgA%22%2C%20%22start%22%3A%20123%2C%20%22end%22%3A%20456%2C%20%22name%22%3A%20%22MyBLASTHit%22%7D%5D`Developers integrating JBrowse into larger project may find this
feature useful for displaying results from other
non-JavaScript-based applications (such as legacy web BLAST tools)
in JBrowse.Features added to JBrowse in this way are available in a special
data store named `url`, which can be specified in a track
configuration by adding `"store":"url"`.
* Added support for an `addTracks` variable in the query string of
the URL used to start JBrowse. This variable accepts track
configurations in JSON format in the form:`[{"label":"mytrack","store":"url","type":"JBrowse/View/Track/HTMLFeatures"},...]`which, when URI-escaped and put in the query string, looks like:`addTracks=%5B%7B%22label%22%3A%22mytrack%22%2C%22store%22%3A%22url%22%2C%22type%22%3A%22JBrowse%2FView%2FTrack%2FHTMLFeatures%22%7D%5D`
* Added "Save track data" option to Alignments2 tracks. This option
should have been there all along, but somehow slipped through the
cracks. Thanks to Valerie Wong for pointing this out at the 2013
GMOD Summer School!
* Statistics about a track's features are now shown in its "About
this track" dialog, if available.
* Added support for a --reftypes argument to `prepare-refseqs.pl`,
allowing you to search a database for reference sequences based on
the type of the reference sequences, e.g. 'chromosome'. Thanks to
Gaelen Burke at the 2013 GMOD Summer School for pointing out the
need for this, and for assistance in testing the new feature.
* Added a `--gbk` option to `flatfile-to-json.pl` that accepts a
GenBank-format text file as input for loading annotation data.
Thanks to Justin Reese for the initial implementation of this.
* When formatting features with `flatfile-to-json.pl`, multi-valued
feature attributes are now only flattened (renamed foo, foo2, foo3,
etc) for "name", "id", "start", "end", "score", "strand",
"description", and "note" attributes. Formerly, all attributes
were flattened. This improves the default display of features that
have many values for some attributes, such as Dbxrefs or GO terms.
* Further improved scrolling smoothness of HTML-based feature tracks.
* `flatfile-to-json.pl` now supports a `--trackType` option that can
be used to set the JavaScript track class that will be used for the
formatted data (e.g. "JBrowse/View/Track/CanvasFeatures" to use the
new, improved HTML5 canvas-based feature tracks).
* `biodb-to-json.pl` configuration files now support a `trackType`
configuration key in each track configuration that can be used to
set the JavaScript track class that will be used for the formatted
data (e.g. "JBrowse/View/Track/CanvasFeatures" to use the new,
improved HTML5 canvas-based feature tracks).
* `prepare-refseqs.pl` can now format reference sequences from a
common .sizes (aka .len) file that is just a two-column
tab-separated list of reference sequence names and their lengths,
run like:
bin/prepare-refseqs.pl --sizes myrefs.sizes
* `prepare-refseqs.pl` can now format reference sequences from a
gzipped GFF3 if the file's name ends with the suffix ".gz".
* Added a '--noSubfeatures' option for flatfile-to-json.pl to skip
importing subfeatures (since `--getSubfeatures` is on by default
for some time).
* The `style.label` configuration variable in HTMLFeatures (and
CanvasFeatures) tracks can now accept a comma-separated string of
field names in addition to a function callback. Defaults to
'name,id';
* The "Save track data" (data exporting) menu now has "Highlighted
region" as one of the choices of which range to export, if there is
something highlighted.
* The "JBrowse" link on the left side of the menu bar, and the
browser title, now display the "About this browser" title instead
of JBrowse, if `aboutThisBrowser` is set in the configuration.
Thanks to Joanna Kelley at the 2013 GMOD Summer School for
suggesting this.
* Tweaked styling of inactive track handles in the default Simple
track selector to make them look less like pressable buttons.
Thanks to Pedro Pagan at the 2013 GMOD Summer School for pointing
out the need for this, and helping to brainstorm how the new styles
should look.
* Horizontal mouse-wheel (or trackpad) events can now scroll the
genome view horizontally. Thanks to Mara Kim for help testing this
at the 2013 GMOD Summer School.
* The "content" of configurable information popups (such as can be
shown when clicking on features) can now accept a dojo/Deferred or
other promise object that will provide the content to be shown
asynchronously.
* Added a `JBrowse/Store/SeqFeature/FromConfig` feature store adapter
that can display feature data that is specified directly in
configuration. This is mostly used to implement the support for
`addFeatures` in the JBrowse URL, but some administrators and
developers may find it conventient as well to define feature data
directly in the JBrowse configuration.
* Added a `track.maxFeatureSizeForUnderlyingRefSeq` configuration
variable, defaulting to 250 Kbp, that sets the maximum length of a
feature for which the default feature detail popup will attempt to
display the underlying reference sequence. Thanks to Colin
Davenport for pointing out the need for this (issue #291).
* Added the ability to specify the file name when exporting track
data to a file. Thanks to Daniel Kasenberg for implementing this.
* Added a `track.noExportFiles` configuration variable that, if set
to true, disables exporting files from the "Save" menu of tracks.
## Bug fixes
* Fixed a bug that prevented clicking on features in Alignments2 (and
other canvas feature tracks) in Internet Explorer.
* Fixed a bad design decision with respect to track metadata stores.
Before, a given metadata key ("Category", "Conditions", etc) was
allowed to only be present in one source of track metadata (CSV
file, configuration file, etc). The original thinking behind this
was that it would be better for people to be forced to keep each
kind of metadata in only one place. This was silly thinking.
Thanks to the 2013 GMOD Summer School participants for helping me
to see the error of my ways.
* Fixed a bug in which turning off the HTMLFeatures track's "Show
Labels" did not remove labels for features with descriptions.
* Fixed a bug with `prepare-refseqs.pl` in which, when multiple
definitions of a reference sequence are found (as in a GFF3 file
with both ##sequence-region directives and a FASTA section), the
seqChunkSize value is not recorded in refSeqs.json and the sequence
bases cannot be displayed in the "Reference sequence" track.
* Fixed a synchronization bug in NCList-based feature data stores
that causes some features to be missing when displaying with a
CanvasFeatures track. This bug may also have affected 'Save track
data' (data export) in some situations.
* Fixed a bug with GFF3 export in which the phase(!) column was
missing. Thanks to Michael Campbell at the 2013 GMOD Summer School
for helping track this down!
* Fixed another bug with GFF3 export in which an extra comma would
sometimes be added at the beginning of GFF3 lines for some child
features.
* Fixed a bug in which the global highlighted region was not correctly drawn
when switching reference sequences.
* Fixed a minor bug in which the REST store backend did not coerce
start, end, strand, and score to be numeric if the input JSON had
them as strings.