JBrowse 1.10.0: Combination tracks, better feature tracks, more glyphs, SPARQL support, and track pinning!
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 - 5.2M - Includes everything you need to display your data on the web with JBrowse, optimized for fast loading speed.
- 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.
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 thetype
key in an existing track configuration to "JBrowse/View/Track/CanvasFeatures" and add aglyph
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 https://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 ofmaker2jbrowse
.
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 namedurl
, 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 toflatfile-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 atrackType
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.sizesprepare-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 foraddFeatures
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.