JBrowse 1.10.1 maintenance release

JBrowse 1.10.1 has been released, with fixes for some minor issues and one major issue.

Files for download:

Changes in this release:

  • Added support in maker2jbrowse for user-defined source tags in
    GFF3 output from MAKER. Thanks to Carson Holt for contributing
    this fix.

  • NCList data stores (actually the array representation used therein)
    now store feature attribute names case-insensitively.

  • Fixed a bug in which features in canvas-based feature tracks could
    not be clicked in Firefox. Thanks to GitHub user mke21 for
    pointing this out, and to Daniel Kasenberg for fixing my fix to
    work with older versions of Chrome.

  • Fixed a bug with client-side GFF3 parsing in which the strand of
    features was not being correctly parsed.

  • Fixed bug preventing backward-compatibility with 1.2.1-formatted
    data. Thanks to Daniel Kasenberg for implementing this.

  • Fixed a bug in the Gene glyph that caused the browser to crash if a
    gene feature has no subfeatures.

Posted in Software releases | Leave a comment

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.
    SHA1 file checksum: 8dddbcbc54d5be967b1d381cb6ad8ace671536e7
  • 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.
    SHA1 file checksum: 8856e1301d90df93ba4a644bccc48c3b4d6dc07c

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 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%5DDevelopers 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.
Posted in Software releases | Leave a comment

JBrowse 1.9.8 maintenance release

JBrowse 1.9.8 has been released, with fixes for some minor issues, a performance improvement when many HTML-based tracks are open, and a new yScalePosition configuration option for all tracks can can be set to “left”, “right”, or “center” to change where the y-axis scale is displayed.

Files for download:

Changes in this release:

  • Removed “XX has no data for this chromosome” popup warning message.
    It was just annoying and not very useful.
  • Added an optional “yScalePosition” element to track configs that
    allows configs with Y axes to have those axes positioned on the
    left or right side of the view, as well as in the center. Thanks
    to Alexis Grimaldi for making this change.
  • Fixed a bug in which NCList-based tracks display with an error for
    reference sequences on which they have no data. Thanks to Michael
    Axtell for pointing this out.
  • Improved GFF3 handling in the File->Open tool, fixed a bug in the
    GFF3 parser in which an empty (.) source column caused the GFF3
    parser to crash.
  • Improved scrolling speed when many HTML feature tracks are active.
  • Fixed a bug in which the browser can fail to start for a reference
    sequence that has never been seen before.
  • Fixed a confusing behavior in JBrowse/Store/SeqFeature/REST in
    which the URLs it constructs to fetch from did not always have a
    ‘/’ where one would expect. Thanks to Alex Kalderimis for pointing
    this out.
Posted in Software releases | Leave a comment

About JBrowse version numbers

Just so everybody’s on the same page, I thought I should point out that from 1.2.0 onward, JBrowse version numbers follow a predictable scheme that encodes a bit of information about what is contained in a release.

JBrowse version numbers look like “A.B.C”, where A, B, and C are positive integer numbers, which might have multiple digits.  Each new JBrowse release increments one of these numbers.

Incrementing C means that only bug fixes and small refinements have been added.

Incrementing B means that major new features have been added, and C is reset to 0.

Incrementing A means that major new features have been added, and that the new release is not backward-compatible with previous releases.  B and C are reset to 0.

So, JBrowse 1.9.5 has the same major features as all the other 1.9.x releases, it just has bugs fixed.  JBrowse 1.10.0 (if there is one) will have some major new features not in 1.9.x.  And JBrowse 2.0.0 will have major new features, and will not be (completely) backward compatible with 1.x.x.

(This, by the way, is more or less the semantic versioning scheme proposed at semver.org, which is pretty sensible.)

(Also, this is a cross-post from a message I sent to the gmod-ajax mailing list.)

Posted in Development | Leave a comment

JBrowse 1.9.7 maintenance release

JBrowse 1.9.7 has been released, with an important fix for a race condition that intermittently causes some NCList-based tracks to show the wrong genomic region when the browser is first started, and a fix for a bug in how JBrowse plugin paths are calculated.

Files for download:

Changes in this release:

  • Fixed a bug in which the initial viewing location (passed from a
    URL parameter or similar) is not always set correctly in NCList-based tracks. Thanks to Steffi Geisen for pointing this out.

  • Fixed a bug in which JavaScript paths for plugins were incorrectly
    calculated when a baseUrl global configuration variable was set.
    Thanks to Matt Bomhoff for pointing this out.

Posted in Software releases | Leave a comment

JBrowse 1.9.6 maintenance release

JBrowse 1.9.6 has been released, with a few more bug fixes and a new --workdir option for generate-names.pl.

Files for download:

Changes in this release:

  • Fixed a bug in which the reference sequence selection dropdown menu
    did not work for purely numeric reference sequence names. Thanks
    to Matt Bomhoff for pointing this out.

  • Fixed a bug with some types of BAM files in which not all BAM
    features would be displayed. Thanks to Ignazio Carbone for
    pointing this out. (issue #276).

  • Fixed bug in which File->Open failed to open GFF3 files with
    embedded sequences in a FASTA section.

  • Added a --workdir option to generate-names.pl to allow name
    index building on a faster filesystem than the one that will
    ultimately store the name index. Thanks to Alexie Papanicolaou for
    suggesting this. (issue #273).

Posted in Software releases | Leave a comment

JBrowse 1.9.5 maintenance release

JBrowse 1.9.5 has been released, with some small new features, and fixes for many small issues.

Files for download:

Changes in this release:

  • Added a trackSelector.initialSortColumn configuration variable
    to the faceted track selector that can be used to set the initial
    sort order for the grid in the faceted track selector. Thanks to
    Alexie Papanicolaou for suggesting this.

  • Made Wiggle density tracks indicate out-of-range values using
    separate clip markers at the top and bottom of the color field,
    rather than showing the out-of-range region as a third color (or
    black or white). Thanks to Gregg Helt for suggesting this.

  • Added support for a quickHelp configuration variable that lets
    administrators customize the contents of the Help->General dialog.
    Thanks to Gregg Helt for suggesting this.

  • Rewrote GFF3 direct-access backend to make it more
    standards-compliant and capable of parsing all attributes of a
    feature. Thanks to Jillian Rowe and Colin Davenport for pointing
    out the need for this.

  • Fixed arrowheads on HTMLFeatures not always being visible when the
    viewing region is being panned back and forth. Thanks to Gregg
    Helt for pointing this out.

  • Fixed a bug in which editing a track’s configuration JSON through
    the track menu when the faceted track selector was enabled
    sometimes caused another track to be deactivated. Thanks to Steffi
    Geisen for pointing this out.

  • Fixed a subtle bug in which not completing a track-dragging gesture
    from the Simple track selector into the genome view caused the
    track handle to not disappear from the track selector when the
    track is turned on later. Thanks to Gregg Helt for pointing this
    out.

  • Fixed a bug in which prepare-refseqs.pl can crash when used with
    Bio::DB::Das::BioSQL. Thanks to Brian Osborne for contributing the
    fix.

  • Fixed failures of setup.sh legacy BAM support installation caused
    by samtools taking down their old SourceForge subversion
    repository.

  • Fixed a bug in which highlighted regions were not always drawn
    correctly at initial load time. Thanks to Steffi Geisen for
    pointing this out.

  • Added support for a plugins->[]->location configuration
    attribute, making it possible for plugins to be loaded from outside
    the JBrowse plugins directory.

  • Fixed a bug in which Wiggle track value displays behaved a bit
    oddly with some kinds of mouse movements. Thanks to Gwendoline
    Andres for pointing this out.

  • Added a logMessages global configuration variable that, if set to
    true, records messages on the JBrowse message bus in the browser
    log.

  • Added a workaround for problems with some types of nonstandard Perl
    installations. Thanks to Rebecca Boes for pointing this out.

Posted in Software releases | Leave a comment

JBrowse 1.9.4 maintenance release

JBrowse 1.9.4 has been released, with fixes for a number of smaller issues present in the 1.9.3 release.

Files for download:

Changes in this release:

  • Fixed a bug with configuration handling that preventing disabling
    right-click feature menus, and probably had other undesirable
    effects. Thanks to Daniel Troesser for pointing this out
    (issue #260).
  • Fixed a bug in which facet renaming specified in the
    trackSelector.renameFacets configuration variable was not
    properly applied to facet titles in the accordion widget on the
    left side of the faceted track selector (issue #251). Thanks to
    Jason Gao for pointing this out.
  • Fixed a bug with GFF3 and Sequin Table export of GFF3
    alternate_allele attributes. Thanks to Jillian Rowe for pointing
    this out (issue #256).
  • Fixed some hard-coded image paths that were not respecting the
    setting of the browserRoot configuration variable. Thanks to
    Harry Yoo for pointing this out (issue #258).
  • Fixed a bug in which running biodb-to-json.pl with no arguments
    caused it to crash instead of producing help output. Thanks to
    GitHub user sreyesch for pointing this out (issue #257).
  • Fixed a bug in which some browsers report that
    src/dijit/_editor/nls/commands.js is missing. Thanks to Steffi
    Geisen for pointing this out.
Posted in Software releases | Leave a comment

JBrowse 1.9.3 maintenance release

JBrowse 1.9.3 has been released, with fixes for a number of smaller issues present in the 1.9.2 release.

Files for download:

Changes in this release:

  • Fixed a bug in VCF backend that prevented display of VCF features
    containing lines in which the ALT column was ‘.’ or not provided.
    Thanks to Ignazio Carbone for pointing this out.

  • Fixed a display bug in faceted track selector in which selected
    facets that have no available matches were squashed to the left
    side.

  • Fixed issue with HTMLVariants track type not being available for
    selection from the File->Open dialog.

Posted in Software releases | Leave a comment

JBrowse 1.9.2 maintenance release

JBrowse 1.9.2 has been released, with fixes for a number of smaller issues present in the 1.9.1 release.

Files for download:

Changes in this release:

  • Fixed bug in which JBrowse could not properly display all data in
    BAM files with reference sequence name sections bigger than 64KB.
    Thanks to GitHub user lfgu for pointing this out (issue #245).
  • Made REST feature store backend less sensitive more tolerant of
    stringification of start, end, strand, and score in feature
    JSON. Thanks to Matt Bomhoff for pointing this out.
  • Fixed bug in which URLs for plugin resources were not assembled
    relative to the browserRoot config variable. Thanks to Matt
    Bomhoff for pointing this out.
  • Fixed bug in which missing fields in a VCF variant’s genotype
    prevented display of a variant’s details. Thanks to Jillian Rowe
    for pointing this out.
  • Fixed some minor issues related to the handling of empty BigWig
    files. Thanks to Nathan Boley for pointing this out (issue #252).
  • The trackSelector.type global config variable can now contain
    fully-qualified class names, so plugins can contain their own
    tracklist classes. Thanks to Matt Bomhoff for pointing this out.
  • Moved the “Select tracks” tab used to open the faceted track
    selector downward, so that it does not block access to the left
    side of the reference sequence overview.
Posted in Software releases | Leave a comment