JBrowse 1.15.0 release – CRAM support, CSI indexes, and on the desktop!

JBrowse 1.15.0 has been released! This is a really big one.

At long last, JBrowse can open and view CRAM v2 and v3 files just like BAM. In fact, viewing CRAM files can sometimes be even faster than viewing BAM files, because there is less data to move around! Enjoy CRAM support, we all worked really hard to bring it to you! Getting started with CRAM is easy, just use the `JBrowse/Store/SeqFeature/CRAM` store and the `Alignments2` track type, just as you probably are already with BAM files. It works with local files too, of course!

Another big development, JBrowse Desktop has matured to the point where we can recommend it without reservation to those looking for a fast, easy to use desktop genome browser for local and remote files. From now on, we’ll be publishing builds of JBrowse Desktop for Windows, Mac OS, and Linux alongside the regular JBrowse releases. Download it and give it a try, let us know what you think! Huge congratulations to Colin Diesh (who is now a full-time JBrowse developer!) for thinking of this, and seeing this amazing development through. I think you will be quite pleased with how well JBrowse runs on the desktop!

Also, JBrowse now supports CSI format indexes for BAM fiels and Tabix-indexed (VCF, GFF3, etc) files. Now your BAM files can be even bigger. As if they weren’t huge enough already. This continues our very serious commitment to make JBrowse effortlessly usable on even the biggest datasets.

Lastly, JBrowse now sports a nice new text-searching interface accessible from the View → Search menu item in the top bar. This was a cool idea that came out of discussions last month at the GCCBOSC 2018 CollaborationFest, and was executed with alacrity by Colin!

As always, read on below the fold for the full release notes, including minor improvements and bugfixes. And thanks for using JBrowse. 😁

Files for download

Major improvements

  • Added support for displaying alignments from CRAM files, using the new npm module @gmod/cram”>@gmod/cram. Thanks to @keiranmraine, @cmdcolin, @nathanhaigh, and the authors of htslib and htsjdk for invaluable test data and suggestions during this major effort. (issue #546, issue #1120, @rbuels)
  • Added support for the CSI index format for tabix VCF/BED/GFF and BAM files! This allows
    individual chromosomes longer than ~537MB (229 bases) to be used in JBrowse. To enable,
    use the csiUrlTemplate config to point to the file. The “Open track” dialog also allows
    CSI to be used. Thanks to Keiran Raine for initial report and Nathan S Watson-Haigh for
    catching a bug in the initial implementation! (issue #926, issue #1086, @cmdcolin)
  • Added a new search dialog box via the View->Search features menubar. It will search the
    currently configured store for features. You can also configure the dialog class in the
    configuration with names.dialog entry, or disable search dialog with disableSearch.
    Thanks to the #GCCBOSC hackathon for the idea and feedback (issue #1101, @cmdcolin).

Minor improvements

  • Re-enabled JBrowse Desktop builds for releases! The Windows, Mac, and Linux binaries for
    JBrowse Desktop are uploaded automatically to GitHub releases page. JBrowse Desktop is a
    standalone app that can be used without a web server, similar to IGV or IGB (@cmdcolin)
  • Added a dontRedispatch option for GFF3Tabix stores. Example: set dontRedispatch=region
    if there are very large region biotype features in the GFF that do not have subfeatures which will
    speed up loading times significantly (issue #1076, issue #1084, @cmdcolin)
  • Add auto-lower-casing to the feature.get(‘…’) function, commonly used for callback
    customizations. Now, for example, feature.get(‘ID’) works as well as feature.get(‘id’).
    Thanks to @nvteja for motivating this! (issue #1068, issue #1074, @cmdcolin)
  • Added cache-busting for track config files which actively prevents stale configuration files
    from being loaded (issue #1080, @cmdcolin)
  • Added indexing of both Name and ID from GFF3Tabix files from generate-names.pl. Thanks to
    @billzt for the implementation! (issue #1069)
  • Made the color of the guanine (G) residue more orangey than yellow to help visibility.
    Thanks to Keiran Raine for the implementation! (issue #1079)
  • Refactored NeatCanvasFeatures and NeatHTMLFeatures as track types. You can enable the track
    style on specific tracks instead of globally this way by modifying the track type to be
    NeatCanvasFeatures/View/Track/NeatFeatures or NeatHTMLFeatures/View/Track/NeatFeatures.
    (issue #889, @cmdcolin).
  • In the location box, allow strings with format ctgA:1-100 e.g. with a hyphen instead of ...
    Big thanks to Nathan S Watson-Haigh for the idea and implementation! The default display
    remains .. but - is allowed. (issue #1100, issue #1102, @nathanhaigh)
  • Allow sequences with a colon in their name to be used in the location box. This includes
    the HLA reference sequences in hg38. Thanks again to Nathan S Watson-Haigh for the
    implementation of this feature. (issue #1119, @nathanhaigh)
  • Fix sensitivity to .gff.gz vs .gff3.gz in GFF3Tabix tracks opened via the “Open track”
    dialog for GFF3Tabix. (issue #1125, @cmdcolin)
  • Feature detail dialog boxes now display subfeatures of features on the reverse strand in
    upstream-to-downstream order, instead of in genomic coordinate order. Thanks to
    @nathanhaigh for suggesting this and contributing the fix! (issue #1071, issue #1114, @nathanhaigh)

Bug fixes

  • Fixed a potential cross-site-scripting (XSS) vulnerability by disallowing dataRoot config
    values or ?data= URL parameters that point to a different server from the one serving
    JBrowse. Users can disable this security check by setting allowCrossOriginDataRoot = true
    in their configuration. (@cmdcolin, @rbuels)
  • Fixed a memory leak that was introduced in JBrowse 1.13.1 in generate-names.pl. Thanks to
    @scottcain for reporting (issue #1058, @cmdcolin)
  • Fix the error checking in setup.sh if no node is installed at all (issue #1083, @cmdcolin)
  • Fix calculation of histograms on GFF3 and GFF3Tabix stores. Thanks to @thomasvangurp for
    the bug report and sample data! (issue #1103, @cmdcolin)
  • Fix the representation of array-valued attributes in column 9 for GFF3Tabix. Thanks to
    @loraine-gueguen for the bug report! (issue #1122, @cmdcolin)
  • Fixed a bug in which visibleRegion() in GenomeView.js sometimes returned a non-integer value for end, which interfered with some scripts and plugins. Thanks to @rdhayes for noticing and contributing the fix! (issue #491, @rdhayes)
  • Fixed bug where reference sequences with names containing the : character could not be switched to by typing their name in the search box. (issue #1118, issue #1119, @nathanhaigh)
  • Fixed setup.sh behavior when node is not installed, printing a decent error message. (issue #1082, issue #1083, @cmdcolin)
Posted in Development, News, Software releases | Leave a comment

JBrowse 1.14.2 maintenance release

JBrowse 1.14.2 has been released!

Files for download

Minor improvements

  • Added a datasetSelectorWidth configuration key that sets the width of the dataset
    selector. The width defaults to 15em. Example setting in tracks.conf:

    classicMenu = true
    datasetSelectorWidth = 20em

    Thanks to @srobb1 for pointing out the need for this. (issue #1059, @rbuels)

  • When exporting GFF3 from the ‘Save track data’ menu, the ##sequence-region pragma now
    specifies the exact sequence region that was exported from the UI. Thanks to @mwdavis2
    for pointing this out! (issue #905, @rbuels)

  • Improved the welcome screen for the desktop version of JBrowse
    (issue #1045, issue #1050, @cmdcolin)

Bug fixes

  • Fixed the --config option for add-bw-track.pl. Although documented in the script’s POD,
    it was not actually being processed. Thanks to @loraine-gueguen for noticing it, and for
    contributing the fix! (issue #1063, issue #1064, @loraine-gueguen)

  • Fixed a bug in which setup.sh failed if run twice in a row under some circumstances.
    (issue #1053, @cmdcolin)

  • Fixed a bug in which setup.sh did not accept nodejs version 10 as sufficiently recent.
    (issue #1048, @cmdcolin)

  • Fixed a bug in which the “Loading…” message erroneously appeared at the top of the
    dataset-selection page. Many thanks to @srobb1 for noticing this and reporting it!
    (issue #1057, @rbuels)

  • JSON syntax errors in the new configuration loading code now have better error messages.
    Thanks to @billzt for pointing out the need for this! (issue #1061, @rbuels)

Posted in News, Software releases | Leave a comment

JBrowse 1.14.1 maintenance release

JBrowse 1.14.1 has been released!

Files for download

Minor improvements

  • JBrowse now supports .idx indexes for VCFs that are generated by igvtools or GATK. Currently
    only VCF files can be used with this index type, but this could be expanded to other file types
    if users are interested. Thanks to @thon-deboer for suggesting this! (issue #1019, @rbuels)

  • The dropdown dataset selector in “classic menu” mode is now a type-ahead combo box, enabling
    fast searching through large numbers of datasets. Thanks to @keiranmraine for the suggestion!
    (issue #752, @rbuels)

  • There is now a new event named /jbrowse/v1/n/tracks/redrawFinished that fires after the
    view is refreshed, when all of the visible tracks are finished drawing (or have errored).
    Thanks to @scottcain for suggesting this. (issue #1027, @rbuels)

  • Improve the calculation of feature density for GFF3Tabix and add new one for GFF3 in-memory.
    Thanks to @hkmoon for the suggestion! (issue #1039, issue #913, @cmdcolin)

  • Re-enabled JBrowse Desktop builds based on automatically building on Travis-CI
    (issue #1028, @cmdcolin)

Bug fixes

  • Fixed several bugs related to the file-opening dialog’s handling of indexed file types
    (bam+bai, gz+tbi, etc). Thanks to @sletort for submitting the bug report! (issue #1033, @rbuels)

  • The Perl formatting tools now properly read include-ed configuration files. Thanks to @carrere
    for pointing out this bug. (issue #551, @rbuels)

  • Fixed a bug in which the faceted track selector was nonfunctional in Internet Explorer 11.
    (issue #1036, @rbuels)

Posted in Software releases | Leave a comment

JBrowse 1.14.0 release – iframe-less embedding, BigBed support

JBrowse 1.14.0 has been released!

This release includes two major improvements, the first being that it’s no longer strictly necessary to run JBrowse inside an <iframe> when embedding it in another site or webpage. Big thanks to Lacey Sanderson for championing this feature, and we look forward to working with the Tripal team toward a better JBrowse integration!

The second major improvement is in displaying data from BigBed files. Not only can JBrowse can now open BigBed files both locally, and over the web, but it now natively displays BED-type thick/thin features and feature blocks rather than converting them to GFF3-style feature hierarchies. This makes both BigBed and BED fast and responsive. The new BED glyph will also use each feature’s RGB color if it has one.

There are many more features coming that enhance JBrowse’s compatibility with UCSC-format data, stay tuned for future JBrowse releases!

As always, read on below the fold for the full release notes, including minor improvements and bugfixes.

Files for download

Major improvements

  • JBrowse now behaves much better when embedded in a webpage without using an iframe.
    See tests/drupal.htm in the JBrowse code for an example of this usage. Thanks to
    @laceysanderson for her patiently championing this feature all the way through the
    long road to completion! (issue #777, issue #844, @cmdcolin)
  • There is a new BigBed store type, for opening BigBed files. An example BigBed track configuration:
        storeClass = JBrowse/Store/SeqFeature/BigBed
        type = CanvasFeatures
        urlTemplate = gencode.bb
        style.label = gene_name,name,id
        style.description = gene_bio_type
  • JBrowse now has much better support for UCSC-style BED and BigBed features, via the new BED
    glyph type for CanvasFeatures. Rather than rendering a complex feature hierarchy like many
    of the other CanvasFeatures glyphs, the BED glyph draws sub-blocks with thick and thin regions,
    for compatibility with the UCSC browser. CanvasFeatures will automatically use the
    JBrowse/View/FeatureGlyph/UCSC/BED glyph type if a feature has no subfeatures, but has
    blockCount or thickStart attributes. This means that, in practice, a BigBed file will
    display very well with just the default configuration. Also for compatibility with the UCSC
    browser, JBrowse will set a BED feature’s background color if one is included in the
    feature data (turn this off by setting itemRgb = false).

Minor improvements

  • The current dataset name is now displayed in the top right portion of the menu bar.
    (issue #767, @rbuels)
  • prepare-refseqs.pl now accepts a --gff-sizes option to allow defining reference
    sequence sizes from the ##sequence-region directives in a GFF3 file. @rbuels
  • Some store types now support a topLevelFeatures configuration variable, which allows
    tracks to treat certain types of features as ‘top-level’, even the actual track data
    has them as children of other features. One common use case for this would be if
    you have gene models in a GFF3 structured as gene→mRNA→exon/CDS/UTR, but you want to
    display the “mRNA” features as top-level, i.e. ignore the gene container that they are in.
    Now you can set topLevelFeatures = mRNA in the track configuration, and the track will
    display only “mRNA” features on the top level, ignoring any other existing top-level features,
    and ignoring the containing “gene” features. This helps address what seems to be a common
    pain point of having to “filter” tabix-formatted GFF3 before using it with Apollo. One
    important caveat is that users that configure tracks to use an “out of band” source of
    feature density or coverage data, like a separate wiggle file that shows feature density,
    will have to make sure that the density data is correct for this filter setting if they
    use it. Thanks to @Yating-L, @nathandunn, and @cmdcolin for valuable discussions.
    Stores that support topLevelFeatures currently are: GFF3Tabix, GFF3, BED, BEDTabix,
    GTF, and REST (issue #974, issue #969, @rbuels)
  • JBrowse can now accept additional configuration from a data-config attribute on its
    container element. This is useful for embedding JBrowse in other sites, particularly
    in cases where the JBrowse assets and configuration are stored or referenced from a
    different location from the page displaying the embedded JBrowse. For example:

    <div class="jbrowse"
            data-config='"baseUrl": "../jbrowse"'
            style="height: 600px; width: 100%; padding: 0; border: 0;"

    would tell JBrowse to look for its configuration and assets at the relative base URL
    “../jbrowse”. @rbuels

  • JBrowse now has a favicon! (issue #973, @rbuels)
  • Added additional caching code to SequenceChunks and NCList stores, reducing duplicate
    network requests and increasing performance in some circumstances (issue #855, @cmdcolin)

Bug fixes

  • Fix a bug in which saving exported data to a file was nonfunctional for some export
    data types. @rbuels
  • Fix a bug in which subfeatures were not always fetched correctly when using the GFF3Tabix
    store (issue #780, @rbuels)
  • Fixed several bugs with specific cases of relative URLs used in configuration. @rbuels
Posted in Development, News, Software releases | Leave a comment

JBrowse 1.13.1 maintenance release

JBrowse 1.13.1 has been released!

Files for download

Minor improvements

  • Gene, ProcessedTranscript, and Segments glyphs can now render third-level subfeatures
    (such as stop_codon_read_through features) as simple boxes that draw on top of the
    main segment glyph. Thanks to @mpoelchau for pointing out the need for this!
    (issue #584, @rbuels)

  • CanvasFeatures tracks, when guessing which glyph to show for a feature in a track
    that does not specify glyphs in its configuration, will now use a Segments glyph
    instead of a Box glyph if the feature in question has subfeatures, and is not
    otherwise recognized as a gene or processed transcript. @rbuels

  • Added a check in the setup.sh script for NodeJS >= 6 and NPM >= 3.
    (issue #1026, @rbuels)

  • Plugins that don’t need CSS can now set jbrowsePlugin.css to false in their
    package.json files to prevent JBrowse trying to load their css/main.css file,
    if they don’t use any CSS. (@rbuels)

  • Add ability for the CanvasFeatures feature labels to stay visible on the screen.
    (issue #390, issue #971, @cmdcolin, @rbuels)

  • Improve VCF tracks support for GVCF generated by GATK, and fix a number of related
    VCF details display bugs. (issue #991, @cmdcolin)

  • generate-names.pl now supports indexing GFF3 files, enabling better use of
    GFF3Tabix tracks. Thanks to @billzt for the initial implementation!
    (issue #780, issue #900, @rbuels)

  • CanvasFeatures ProcessedTranscript and Gene glyphs now support a “style→utrHeightPercent” configuration variable that sets the percentage of the overall feature’s height that UTRs have. This was previously hardcoded to 65, now it is customizable, defaulting to its old value of 65. @rbuels

Bug fixes

  • Updated NeatCanvasFeatures and NeatHTMLFeatures plugins to support a gradient
    configuration variable, fix rendering of outrons, restore their default
    gradient-drawing behavior, disable gradients by default on Alignments and
    Alignments2 track types, and clean up their documentation. (issue #931, issue #982,
    issue #985, issue #931, issue #992, issue #1011, @enuggetry)

  • Fixed a bug with plugin loading that was preventing some plugins from working
    correctly. (issue #1025, @rbuels)

  • flatfile-to-json.pl will now refuse to format a track if the trackLabel
    contains a ‘/’ character. Thanks to @dytk2134 for pointing this out, and @cmdcolin
    for the fix! (issue #1023, @cmdcolin)

  • Fixed a bug in which the viewing location would not be preserved across page reloads
    if generate-names.pl had not been run, or a names store had not otherwise
    been defined. Thanks to @cmdcolin for the bug report. (issue #1016, @rbuels)

Posted in Development, News, Software releases | Leave a comment

JBrowse 1.13.0 release – now with webpack!

I’m pleased to announce that JBrowse 1.13.0 has been released!

There are actually not a huge number of new features in this release, but there has been a significant change in the way JBrowse is built behind the scenes, and the introduction of a slight (slight! I hope it’s slight!) backward incompatibility with some existing plugins.

JBrowse now uses webpack to build and package its code for consumption by web browsers, which opens up a lot of options for the development team, paving the way for a much nicer road to all of the great things coming down the road in JBrowse 2. Most importantly, it means that we can build JBrowse 2 with modern technologies, while sharing code (particularly data stores) with JBrowse 1, which should greatly accelerate JBrowse 2 development. Yeah, we’re playing 4-D chess here.

However, besides the big build system overhaul, there are also some nice new improvements and bug fixes in this release, read below for the full release notes.

Files for download

Major improvements

  • JBrowse now uses a Webpack-based build system, which greatly speeds up JBrowse’s
    initial loading time. More importantly, going forward, this change will also enable us to make much more effective use of the huge node.js ecosystem that has grown up in
    recent years, as well as to use newer versions of JavaScript itself while
    still maintaining compatibility with older web browsers.
  • Behind the scenes, the way JBrowse plugins are discovered and loaded has also
    changed significantly. The most visible consequence of this change is that
    installations that use plugins must now use the JBrowse-1.13.0-dev.zip release
    (or check out the master branch from GitHub), and must re-run the webpack build
    (most easily by running setup.sh) every time a plugin is added or removed from
    JBrowse. Although we think that most users of plugins will not experience any
    problems, we recommend that installations that make use of plugins other than the
    standard built-in plugins (Neat*Features, RegexSearch, etc) test the compatibility
    of their plugins thoroughly before deploying this release, and report any problems
    either to the JBrowse issue tracker on GitHub, or to the gmod-ajax mailing list.
  • Again, concisely: if you use JBrowse plugins other than the “stock” ones that
    come with JBrowse, you must now use the dev release of JBrowse, and re-run either
    setup.sh or npm run build every time you add or remove a plugin.
    (issue #981, @rbuels)
  • JBrowse plugins can now be published and installed with NPM. Simply publish your
    plugin using the standard npm publish machinery, and make sure its package name
    ends with “-jbrowse-plugin”. For example, if you have a plugin named “foo”, publish
    it to npm as “foo-jbrowse-plugin”. However, if your plugin is named MyAwesomePlugin,
    which is not compatible with npmjs.org’s naming conventions, you will want to publish
    it as something like “myawesome-jbrowse-plugin” and add a configuration stanza to its
    package.json file telling JBrowse its real plugin name. Example:

      "jbrowsePlugin": {
        "name": "MyAwesomePlugin"

Minor Improvements

  • Added disableCollapsedClick and enableCollapsedMouseover track configuration options.
    The enableCollapsedMouseover option is useful when features do not overlap e.g.
    chromosome segmentation and disableCollapsedClick is useful when the collapsed features
    are very dense. Thanks to @rdhayes for tips (issue #544, issue #870, @cmdcolin)
  • Removed JBrowse 1.2.1 compatibility. Please use JBrowse 1.12.5 or earlier
    if you still have old data formatted with JBrowse 1.2.1. (@rbuels)
  • For npm installations of JBrowse, jb_run.js and jb_setup.js are now installed into
    the standard node_modules/.bin location. (issue #1021, @rbuels)

Bug fixes

  • Fixed a bug in which adding setting tracklabels=0 in the URL failed to hide
    track labels when nav=0 was also set in the URL. Thanks to Vaneet Lotay for reporting
    the problem, and @cmdcolin for the fix. (issue #1017, issue #1018, @cmdcolin)
Posted in News, Software releases | Leave a comment

JBrowse 1.12.5 maintenance release

JBrowse 1.12.5 has been released!

Files for download

Minor improvements

  • Safari versions 10 and 11 will now see buttons for downloading feature FASTA
    sequences, as well as other sequences. These were turned off for all Safari
    browsers back when no version of Safari could download a client-generated file,
    but Safari 10 and 11 support it now. Thanks to @kkara for noticing the button
    was missing and prodding us to look into it. (issue #714, @rbuels)
  • Changed the default color for HTMLFeatures features to be a darker gray that
    is easier to see. Many thanks to @colindaven for the fix! (issue #980, @colindaven)
  • Added the ability to manually specify a reference sequence ordering in the
    configuration. Users can now set refSeqOrder: "by_list" and then set
    refSeqOrderList: "ctgX,ctgY,ctgZ" to manually specify an ordering.
    Thanks to @dsenalik, @liub1993, @wkpalan, and @cmdcolin for valuable
    discussions about this, and @rdhayes for the prototype implementation.
    (issue #867, issue #919, issue #1007, @rdhayes)
  • Added a --noSort option to prepare-refseqs.pl that preserves the reference
    sequence ordering in the input file, instead of sorting the reference sequences
    alphabetically in the JSON. Thanks to @dsenalik for the prototype implementation
    of this, and @cmdcolin and @rdhayes for valuable discussions.
    (issue #925, issue #924, issue #1007, @dsenalik)
  • Feature tracks now support a showNoteInAttributes flag that force the feature’s
    Notes attribute to be displayed as a regular attribute in the feature detail
    popup. This is to support the case in which users want the blue description text
    on a feature to be different from the feature’s Notes attribute, but still display
    the Notes attribute in the detail dialog. Thanks to @loraine-gueguen and @cmdcolin
    for the idea and the implementation. (issue #885, @cmdcolin)
  • When users click on an item in the dropdown autocompletion for the browser search
    box, the browser will go directly to that item immediately, eliminating the extra
    step of the user having to click “Go”. Many thanks to @enuggetry for noticing the
    opportunity for this nice usability enhancement! (issue #616, issue #1001, @rbuels)
  • The global highResolutionMode configuration is now set to auto, meaning that
    JBrowse by default will now auto-detect high-DPI displays (Apple Retina displays
    and similar) and draw canvas-based tracks more clearly on them. This capability
    has been present in the JBrowse code for a long time, but has been turned off
    by default. (@rbuels)
  • Added support for two new configuration variables for SNPCoverage tracks:
    indicatorProp and indicatorDepth, which set the minimum proportion (indicatorProp)
    and minimum depth (indicatorDepth) of alternative alleles required to render the
    SNP indicator below a SNPCoverage track. Big thanks to Nathan Haigh for the idea
    and implementation! (issue #951, @nathanhaigh)
  • Added a basic loading screen for when the page is initially loading (issue #1008,
  • The subfeatureDetailLevel configuration variable for tracks now defaults to a value
    of 2, meaning that the builtin JBrowse default feature detail popup dialogs will only
    show one level of subfeatures by default. Most feature tracks have only one level of
    subfeatures anyway, but for very complex data (like gene models with many transcripts,
    each with many introns and exons), this new default will prevent a rather confusing
    problem some users were seeing in which JBrowse would seem to ‘hang’ when clicking a
    gene model to see its details. Thanks to @cmdcolin for the original implementation of the
    subfeatureDetailLevel configuration variable, @kshefchek for a good bug report that
    shows it, and @nathandunn and @selewis for valuable discussions.
    (issue #559, issue #1010, @rbuels)

Bug fixes

  • Fixed a security issue with JBrowse error messages. Thanks to @GrainGenes for
    noticing and reporting it! (issue #602, @rbuels)
  • Fixed an off-by-one error in the “Next segment position” field of BAM features.
    Thanks to @keiranmraine for reporting it, and @rdhayes for tracking down the fix!
    (issue #907, issue #986, @rdhayes)
  • Fixed the broken demo track data source in the modENCODE sample data. Thanks
    to @cmdcolin for the fix! (issue #999, @cmdcolin)
  • Fixed bug in which dragging an Alignments or Alignments2 track into a combination
    track caused the combination track to crash. (issue #771, @cmdcolin)
  • Feature detail dialogs for variant tracks now correctly display “no-call” in
    the genotype details table for “./.” alleles. Thanks to @carrere for reporting
    it, and @cmdcolin for the fix. (issue #980, issue #990, @cmdcolin)
  • Fix parsing of the END field in VCF tracks, enabling things like CNV and deletion
    variants to be visualized from variant tracks. (issue #847, @cmdcolin)
  • Fixed a long-standing bug in JBrowse configuration template parsing that
    prevented use of dot-notation nested variable names, e.g. {foo.bar}, in
    JBrowse configuration, as well as whitespace inside the braces. Big thanks to
    @wuroger for finding this bug. (issue #1012, @rbuels)
Posted in News, Software releases | Leave a comment

JBrowse 1.12.4 maintenance release

JBrowse 1.12.4 has been released, with a great many improvements and bugfixes! Apologies for the long delay since the last release.

One highlight of this release is that we have fixed a severe incompatibility that prevented many of the JBrowse formatting scripts from running correctly on Perl 5.18 and above.

However, there have been a HUGE number of smaller improvements and bugfixes, have a look at the release notes below!

Files for download

Minor improvements

  • Fixed SEVERE performance regression that basically made flatfile-to-json.pl
    unusable on Perl 5.18 and higher. Huge thanks to Colin Diesh for tracking
    this down. (issue #470, issue #912, @cmdcolin)
  • Added code to calculate feature density histograms for Tabix-indexed GFF3
    (GFF3Tabix) data sources. Thanks to @nathandunn for noticing and fixing
    this! (issue #956, @nathandunn)
  • Added a new “Hide unspliced reads” menu item to Alignments and Alignments2
    tracks that filter out reads that have no Ns in their CIGAR strings.
    Thanks to Deepak Kunni and Nathan Dunn for their work on this.
    (issue #921, @deepakunni3)
  • setup.sh now uses npm instead of Bower (which is deprecated) to install
    dependencies. @enuggetry
  • Removed legacy wig-to-json.pl and bam-to-json.pl scripts. @rbuels
  • Added a --trackConfig option to prepare-refseqs.pl to allow injecting
    refseq configuration variables at format time. (issue #884, @erasche)
  • Added trackLabels: “no-block” config feature. Moves track labels/menus
    above the features so as not to obscure the features. (issue #901, #490)
  • Added a --category option to add-bw-track.pl and add-bam-track.pl to
    set the new track’s category. Thanks to @loraine-gueguen for the implementation!
    (issue #911, @loraine-gueguen)
  • Made jbrowse installable using npm. @cmdcolin and @enuggetry.
  • Implemented a built-in node.js Express server jb_run.js for quick JBrowse launching.
  • Added an --unsorted option to prepare-refseqs.pl that formats reference sequences
    in the same order in which they appear in the input sequence file. Thanks to
    @dsenalik for the suggestion and implementation! (issue #924, @dsenalik)
  • Allows for dot-notation instead of JSON (issue #952) for addTracks, addBookmarks,
    and addStores. https://github.com/GMOD/jbrowse/pull/952. Address security concerns
    adding JSON to GET (https://nvd.nist.gov/vuln/detail/CVE-2016-6816) @nathandunn.
  • If a track has no key set in its track configuration, JBrowse will now look for
    a key in its track metadata, and use that if it is present. Thanks to Loraine
    Guéguen for the idea (issue #957, issue #958). @rbuels
  • Fixed bug in maker2jbrowse script that allows maker2jbrowse to be installed
    in system executable directories, and adds a --sortMem option.
    (issue #877, @cmdcolin)
  • Fixed a cosmetic/styling bug with malformed DOM structure in feature detail popup
    dialogs. Thanks to Erik Rasche for noticing and fixing this! (issue #882, @erasche)
  • Added a configuration option that can disable JBrowse’s behavior of updating the
    browser’s title text as the view changes. Thanks to Luka Jeran, Primož Hadalin,
    and Nathan Dunn for this! (issue #904, @lukaw3d)
  • Suppress execution of biodb-to-json.pl on sample data while running setup.sh
    on MacOS High Sierra with stock Perl due to an issue with the stock Perl having
    broken BerkeleyDB integration, which is needed by Bio::DB::SeqFeature::Store,
    the main storage engine used by biodb-to-json.pl. Bug was manifesting as the script
    running indefinitely and taking all available disk space.
    (issue #945, issue #946, @deepakunni3 and @rbuels)
  • Mitigate race condition that could sometimes cause duplicate tracks to be shown
    when the browser is started with the loc query parameeter set to the name of
    a feature. Thanks to Colin Diesh for the fix. (issue #567, @cmdcolin)
  • Fixed issue in which JBrowse crashed when negative numbers were supplied for highlight
    coordinates in the URL. Thanks to @h2akim for reporting, and @cmdcolin for debugging help.
    (issue #769, @rbuels)
  • Add --config command-line option to add-bw-track.pl and add-bam-track.pl
    scripts. Thanks to Chris Childers for suggesting this! (issue #620, @rbuels)
  • Fixed a “cannot read property ‘offsetLeft'” error when using touch screens without
    the old simple track selector active. (issue #893, @rbuels)
  • Upgraded to use new Google Analytics API for usage reporting. (@rdhayes)
  • Fixed bug in which start/stop codons were sometimes not displayed in the sequence
    track at certain zoom levels (issue #858, pull req #859, @cmdcolin)
  • Fixed a regression in which the defaultTracks configuration variable was no longer
    respected when set to a comma-separated list. (issue #892, issue #896, @rdhayes)
  • Made a cosmetic change to Alignments track detail popups, changing “Length on ref” to
    be displayed as “Seq length on ref”, so that it is displayed more usefully next to
    “Seq length”. Thanks to @colindaven for the suggestion and implementation!
    (issue #939, @colindaven)
  • Improved the error messages displayed when a JBrowse glyph class fails to load. Thanks
    to @scottcain and @cmdcolin for tracking down the issue and improving the error
    handling! (issue #968, @cmdcolin)
  • Added support for an addFeatures URL query parameter that can inject features from
    the URL query string. (issue #976, @nathandunn)
  • Changed the project’s git workflow to utilize a dev branch that is separate from
    master, with master only being updated when a new release of JBrowse is published.
    (issue #975, @enuggetry)
  • Implemented automated deployment of JBrowse releases to GitHub releases and npm.
    Thanks to @abretaud, @nathandunn, @erasche, and @cmdcolin for valuable discussions.
    (issue #822, issue #979, issue #984, @rbuels)
  • Added a --bigwigCoverage option to add-bam-track.pl to support configuring pregenerated
    coverage histograms from the command line. Thanks to @loraine-gueguen for the suggestion
    and implementation! (issue #972, @loraine-gueguen)
  • Improved documentation of the CategoryURL plugin. (issue #985, @enuggetry)
Posted in News, Software releases | Leave a comment

JBrowse-1.12.3: Maintenance Release

We are happy to announce JBrowse 1.12.3 release!  

This release includes a lot of improvements and bugfixes and we thank the community for the support. Some great new features include parsers for new file formats including 2bit format, which can be loaded via prepare-refseqs.pl. There are also new parsers for tabix BED files, tabix GFF and IonTorrent BAM files. Some other improvements include a new `noFill` option to display BigWig tracks as a scatter plot, the `cacheMismatches` option that improves performance for BAM files with long reads, and many other small improvements and fixes.

In addition, visit the JBrowse Plugin Registry for a collection of great plugins.


Minor improvements

  • Upgraded build system to install dependencies with bower and
    updated to dojo 1.9.8 (issue #718).
  • Added the ability to load tabix indexed GFF and BED files.
    Thanks to Colin Diesh and @zhjilin for contributing (issue #670).
  • Added ability to open BED files in the “Open track” user interface
    (issue #729).
  • Added ability to access SPARQL and other jbrowse data stores via
    CORS. Thanks to the WebApollo hackathon and Eric Rasche for
    contributing (issue #679).
  • Added extra coloring schemes for the Sequence track when using
    protein residues. Thanks to Eric Rasche for the idea and
    implementation (issue #673).
  • Added ability to specify custom exporter classes for the “Save
    track data” option, for example, adding exporter code in plugins
    (issue #682).
  • Added ability to specify custom name store classes via plugins,
    which allows plugins to implement their own search functionality
    (issue #732).
  • Added a timeout for the track feature density calculations which
    can aid problems like consistent chunkSizeLimit issues
    (issue #540, issue #730).
  • Added an option to specify multiple highlights, or bookmarks,
    using the config file, a remote service, or the URL bar
    (issue #668).
  • Added support for parsing BAM files from IonTorrent (issue #782,
    issue #568).
  • Added support for native file access to .2bit files (issue #759).
  • Added list of plugins in about box (issue #848).
  • Added cacheMismatches option to improve performance when viewing
    long-read alignments (issue #860).
  • Added subfeatureDetailLevel config item to make View details box
    only load subfeatures on demand (issue #861).
  • Added ability to draw scatter plot from BigWig tracks. Thanks to
    Keiran Raine for the contribution (issue #741).
  • Added a fullviewlink option for the URL bar to disable “View full
    link” attribute in embedded JBrowse. Thanks to Vivek Krishnakumar
    for contributing (issue #813).
  • Added URL parameter &tracklabels=0 and config parameter to hide
    track labels (issue #869).
  • Added renderAlignment option which creates a per-base alignment
    view of the read versus the reference (issue #795).
  • Added inferCdsParts option which creates CDS subfeatures from a
    continuous CDS region for CanvasFeatures glyphs. Thanks to
    Vivek Krishnakumar for the contribution (issue #872).
  • Added events tracks/focus, tracks/unfocus, allowing for context
    switching based on selected track.

Bug fixes

  • Made the menu bar widgets centered again (issue #680).
  • Fixed error where the sequence track would not load after “Open
    sequence file” (issue #831).
  • Fixed problem with persistant “Error reading from name store”
    message. Thanks to Anthony Bretaudeau for contributing the fix!
    (issue #820).
  • Reverted to standard eukaryotic codon set.
  • Fixed issue where saving session in JBrowse Desktop where plugins
    were not saved with session.
  • Fixed an error if there were numerical values being used as label
    or description for the CanvasFeatures type tracks. Thanks to
    Eric Rasche for reporting (issue #673).
  • Fixed some issues where the Gene glyph would not layout some
    features correctly. Thanks to Eric Rasche for reporting
    (issue #686).
  • Fixed an issue with JBrowse Desktop where saving session would not
    save the tracks that were not visible.
  • Added fix when using indexed fasta from prepare-refseqs.pl.
    Thanks to @billzt for the report (issue #719).
  • Added a fix for an issue where editing the configuration of files
    that were opened by a user didn’t work. Thanks to @lpryszcz for
    the report (issue #569).
  • Fixed some inconsistencies where “Open sequence” on file with a
    .fasta file extension failed (issue #696).
  • Fixed issue where track labels would re-appear during scroll
    (issue #793).
  • Added handler for click scrolling in genome view. Thanks to
    @exogenesys for fixing (issue #709).
  • Fixed a rare error that only affected some versions of Chrome
    (issue #758).
  • Removed linear gradients from some NeatFeatures tracks
    (issue #721).
  • Fixed issue where saving GFF3 would fail if the source data
    was in VCF format (issue #800).
  • Fixed issue where there was a mix of plugin declarations
    (issue #866).
Posted in News, Software releases | Leave a comment

GSoC Students Do Cool JBrowse Projects

I’m pleased to introduce two Google Summer of Code students who are working actively on Jbrowse projects:

Pubudu Dodangoda is working on a social commenting extension for gene features.

Saksham Saxena is working a module to manage synthetic chromosomes through GitHub.

Pubudu is a student of Department of Computer Science and Engineering, Faculty of Engineering, University of Moratuwa. He is planning to continue studies in the areas of Web app/service development primarily with technologies such as JS, ES2015, AngularJs, ReactJs, NodeJs etc,  Human Computer Interaction(HCI), machine learning, Bioinformatics and concurrent programming.
Pubudu plays table tennis and enjoys music during his free times. He used to do some photoshop work some time back but kind of stopped it due to the workload of final year project and all. He was also a teaching assistant for ‘communication skills’ module during the last semester and worked as an intern at WSO2 last year.
Saksham is attending Delhi Technological University, pursuing Bachelor’s of Technology in Engineering Physics. Presently in third year.
Saksham is an audiophile, science, technology and philosophy indulgent who drives to live, and is an occasional poet.

GitHub: https://github.com/sakshamsaxena,
LinkedIn: https://www.linkedin.com/in/saxenasaksham
Blog/Tumblr: sakshamsaxena.in

Posted in News | Tagged | Leave a comment