A new JBrowse release has arrived! JBrowse 1.11.5 incorporates many valuable contributions and feedback from the community which has been overwhelmingly positive. Some notable bugs have been fixed, including a long-standing VCF file parsing bug, a scrolling bug that affected popup boxes for variants on JBrowse 1.11.4, and a patch for setup.sh build errors. There are also some new configuration options for the tracklist and dialog boxes, and the ability to use tablet and touch-screen devices has been fixed!
Added the ability to disable sorting on the Hierarchical track selector using the sortHierarchical flag. Thanks to Chris Childers for the suggestion and Colin Diesh for the implementation (issue #477).
Added saving of the display mode setting on the CanvasFeature based tracks. Thanks to Jon Hinton for the idea and Colin Diesh for the fix (issue #469).
Added configurable click event handlers for Wiggle type tracks. Thanks to Richard Hayes for implementing this feature (issue #489).
Added more configuration options for 'View details' popups as well as the ability to customize the 'About track' popups. Thanks to Colin Diesh for the idea and implementation (issue #494).
Added the ability to load the category attribute from trackMetaData files to be used for the Hierarchical track selector.
Added the ability to specify initially collapsed categories in the Hierarchical track selector (issue #507).
Added beta touch-screen and tablet support by fixing a related bug. Thanks to Paul Hale and Kieran Raine for reporting bugs and to Emily Greenfest-Allen for the suggested fix (issue #505).
Bug fixes
Fixed a bug with VCF tabix file parsing that caused unnecessary chunkSizeLimit errors. Thanks to Richard Hayes for finding and debugging this issue (issue #486)!
Fixed a bug where the Variant popup boxes would not display complete genotype information in previous 1.11.* versions. Thanks to Nando for reporting the bug and Colin Diesh for the bugfix (issue #488).
Fixed a small error that occured when using variant type tracks with the REST API.
Added a bugfix that caused problems scrolling in dialog boxes for variant type tracks in 1.11.4 (issue #492).
Fixed the use of the --refs flag on prepare-refseqs.pl. Thanks to Audrey for finding & fixing this bug (issue #497).
Added missing template length flag to the Alignments popup dialogs. Thanks to Kieran Raine for the suggestion and Colin Diesh for the fix (issue #471).
Fixed the functionality of the --incremental flag in the generate-names.pl script. Thanks to Richard Hayes and Colin Diesh fixing the issue (issue #478).
Fixed legacy bam-to-json.pl support when running setup.sh due to samtools build modifications (issue #501).
I am happy to announce the release of JBrowse 1.11.4. This is the first release after Rob's leave, and it represents the great community effort to keep things going. There are some exciting new developments in this version, including high-resolution rendering of canvas-based tracks and a basic GTF file parser. There are also several important bug fixes, including an update to the setup.sh script in order to maintain compatibility with the latest BioPerl.
Added high-resolution rendering for CanvasFeatures, SNPCoverage, BigWig tracks, and histograms. This allows rendering for canvas- based tracks to look much sharper on high-resolution displays and can even look sharper when zooming. The high-resolution rendering is disabled by default to avoid conflicts with existing instances, but feel free to test it out by setting "highResolutionMode" in jbrowse.conf. Thanks to Colin Diesh for the idea and implementation (issue #456)
Added the ability to run jbrowse scripts outside of the JBrowse root directory. Thanks to Chien-Chi Lo for the patch (issue #465).
Added basic GTF parser that can open files from the File->Open menu or by using the in-memory adaptor. Big thanks to Andrew Warren for the contribution (issue #453).
Added a change to the highlight button to allow the user to more easily clear highlights. Thanks to Paul Hale for the suggestion and Colin Diesh for the fix (issue #445).
Bug fixes
Fixed help page icons not loading since JBrowse 1.11.2. Thanks to Colin Diesh for catching the bug and fixing it (issue #460).
Fixed updating of the y-axis scale when using the resize quantitative tracks feature. Thanks again to Evan Briones for the original implementation and Colin Diesh for the fix (issue #461).
Changed the CanvasFeatures 'View details' pages to display the name and description of features in the dialog box. Thanks to Colin Diesh for the fix (issue #463).
Added a bugfix for non-compliant servers that add a trailing slash to the URL. Thanks to Colin Diesh for the fix (issue #462).
Fixed a broken link in the documentation for biodb-to-json.
Updated setup.sh to maintain compatibility with the latest BioPerl. Thanks to Thomas Sibley and Scott Cain for helping with this issue (issue #468).
Fixed a long standing bug with the coloring of nucleotides on the SNPCoverage/Alignments2 track. Thanks to Long Le for reporting this on the mailing list.
Fixed a long standing bug with the scrollbar in the dialog box on Chrome and Safari browsers. Thanks to the #dojo irc channel and and Colin Diesh for helping fix this problem (issue #386).
Fix a small rendering problem that causes one pixel gap to appear on Safari due to subpixel rendering issues. Thanks to Colin Diesh for the preliminary fix (issue #341).
Fix a bug with CanvasFeatures based tracks loading huge amounts of data to generate histograms instead of using pre-generated histograms. Thanks to Daniel Troesser for reporting this on the mailing list and Colin Diesh for the fix (issue #475).
JBrowse 1.11.3 has been released, with quite a few improvements and bugfixes, including a new coloring scheme for BAM alignment tracks (Alignments2 tracks), a fix for some annoying bugs with the feature arrowheads, and some nice new configuration variables for customizing the display of certain fields in the default feature detail popup dialog boxes (see the JBrowse Configuration Guide for details).
In addition, this will be my last JBrowse release in my position as JBrowse lead developer. Thank you all for the past two years of development; we've made some exciting strides, and it's been great!
Added a "Zoom to this" item in the default right-click menus for
canvas-based feature tracks. Thanks to Paul Hale for the initial
implementation of this.
Allow the user to set the document.domain property via jbrowse.conf
which can be helpful especially if jbrowse is embedded in a iframe.
Thanks to Kieran Raine for the idea and Colin Diesh for the bugfix
(issue #440)
Improved the graphic design of the "Add sequence search" dialog box
to make it clearer how to switch between providing an amino acid
and a nucleotide sequence. Thanks to Kevin Mohamed for the initial
implementation of this (issue #436).
Expanded the default color set of Alignments2 tracks to show
different shades of color indications of reads with missing mate
pairs, improperly aligned reads, and reads with mate pairs on
different reference sequences. Thanks to Keiran Raine for
implementing this (issue #443).
Added support to customize specific parts of the 'View details'
popups using callback functions. Thanks to Kieran Raine for the
idea and Colin Diesh for the implementation (issue #421).
The File->Open tool will now can add files named *.coverage.* or
*.density.* as histograms to newly-opened tracks if the file
basenames match. For example, if both mysample.bam and
mysample.coverage.bw are present, mysample.coverage.bw will be
added as a histogram source for mysample.bam. Thanks to Keiran
Raine and Alexander Stoddard for suggesting this (issue #423).
Bug fixes
Fixed a problem where the feature arrowhead would get stuck in the
middle of the screen at high zoom levels. Thanks to Colin Diesh for
the fix (issue #449).
Disabled the FASTA download button in the "View details" page on
Safari (issue #412). This feature can't be supported in Safari at
this time, but it is still supported in most other browsers. Rob
Buels and Colin Diesh contributed fixes to this issue.
Fixed a bug in the client-side GFF3 parser pointed out by Andrew
Warren. Thanks Andrew! (issue #452).
Fixed the problem of translation frames being switched around at
different zoom levels. Thanks to Kieron Taylor for the bug report
and Colin Diesh for the bugfix (issue #435)
Fixed a bug where gene features in GFF tracks would not have
arrowhead markers. Thanks to Colin Diesh for finding and fixing
this issue (issue #454)
We recently used JBrowse in the 150 Tomato Genome ReSequencing project, and it worked great!
The aim of the 150 Tomato Genome ReSequencing project (https://www.tomatogenome.net) is to reveal and explore the genetic variation available in tomato. Tomato has been selected as target crop because it is economically one of the most important crop species for the Dutch breeding industry, and is one the most important vegetables globally. However, since the tomato shows only limited genetic diversity in commercial breeding lines, valuable alleles will be available in wild tomato relatives. Since breeding and selection was targeted at only a narrow range of desirable agricultural traits, also old breeding material could be source of interesting alleles that have been lost during domestication.
In order to identify the sequence diversity within tomato, 83 genotypes including 10 old varieties, 43 land races and 30 wild accessions were seqeunced. These wild tomato species represent the full range of expected genetic variation around _S. lycopersicum _that can still be used as potential breeding material.
Sequences have been mapped against the reference genome of S. lycopersicum cv. Heinz (SL2.40) and SNP and INDEL variation has been determined.
JBrowse is a fast, embeddable genome browser built completely with JavaScript and HTML5, with optional run-once data formatting tools written in Perl.
JBrowse 1.11.2 has been released, with some new controls to adjust the size of quantitative tracks (thanks to Evan Briones at University of Arizona!), added support for the new text-based tracks.conf files to generate-names.pl, and quite a few other small improvements.
Added some user interface elements to set the height in pixels of a
single quantitative track, or of all visible quantitative tracks.
Thanks to Evan Briones for implementing this!
Added a JBrowse/View/FeatureGlyph/Diamond glyph that draws
diamond-shaped features instead of boxes. Thanks to OICR Co-op
student Kevin Mohamed for implementing this!
Reference sequence tracks now display a "no sequence" message
instead of a bunch of blank blocks when the reference sequence
basepairs aren't available. Thanks to Kevin Mohamed for
implementing this (issue #422).
Persistent session state is now stored on a per-dataset basis,
which improves user experience when switching between multiple
datasets in JBrowse. Thanks to Richard Hayes for pointing this
issue out, and Kevin Mohamed for the fix (issue #410).
"Hide sites not passing ..." settings in VCF track menus now show
the filter's long description when hovered over. Thanks to Keiran
Raine for suggesting this (issue #420).
Tweaked display of track labels and added a slight border at the
top edge of each track to make it more clear which track data
belongs to. Thanks to Keiran Raine for suggesting this, and Kevin
Mohamed for the initial implementation (issue #432).
Added a --config option to flatfile-to-json.pl that accepts
additional configuration variables that will be merged into the top
level of the track configuration. Thanks to Mikael Brandström
Durling for the initial implementation of this.
Bug fixes
generate-names.pl now indexes VCF files from track definitions in
tracks.conf files. Thanks to Paul Halle for pointing this out
(issue #434).
Added a missing dependency for the server side formatting tools on
List::MoreUtil 0.28 or higher. Thanks to Cris Lawrence and Keiran
Raine for troubleshooting this!
JBrowse 1.11.1 has been released, with a number of bug fixes and some nice improvements to Alignments2 tracks. Most of the Alignments2 improvements were thought up by Keiran Raine at Sanger, thanks Keiran! Thanks also to Cris Lawrence and Richard Hayes, who were helpful in finding some other bugs and opportunities for improvements.
Alignments2 tracks now include right-click menu items to view the
location of an alignment's mate pair or next segment in a popup or
a new tab. Thanks to Keiran Raine for suggesting this (issue #406).
Alignments2 tracks now draw gaps and deletions in reads regardless
of zoom level, as long as the alignment is at least 3 pixels wide
in the display. Thanks to Keiran Raine for pointing out the need
for this (issue #403).
Added support for a histograms.max variable for
CanvasFeatures-based tracks that can be used to manually set the
max value of a histogram display. Thanks to Keiran Raine for
pointing out the need for this.
Added support for drawing clip markers (with their color set by
histograms.clip_marker_color) in CanvasFeatures-based
tracks. Thanks to Keiran Raine for pointing out the need for this
(issue #402).
Canvas-based feature tracks now try to draw histograms, if
available, when the data backend throws a data-overflow error (like
when the BAM backend exceeds the chunkSizeLimit). Thanks to Keiran
Raine for motivating this (issue #405).
Make it easier to set JS loading baseUrl by moving it into the
initial dojo configuration. Thanks to Jillian Rowe for pointing
out the need for this.
Enhanced new text-based config syntax to support arrays of values
in a list like:
When a number is typed into the location box, JBrowse first checks
if it is the name of a feature in the names index, and only
interprets it as a coordinate if it is not found in the names
index. Thanks to Richard Hayes for pointing this out (issue #407).
Fixed bug that caused client-side GFF3 tracks to appear as
"Loading" forever if the GFF3 is malformed (like malformed GFF3
files that are opened with the File->Open tool).
Fixed bug in which no default value for
maxFeatureSizeForUnderlyingRefSeq was being set, which made
default feature detail popups try to fetch and display a feature's
underlying reference sequence even if it is way too large, unless
the variable was set explicitly in the configuration.
JBrowse now shows a more understandable error message when trying
to open an uncompressed BAM file. Thanks to Keiran Raine for
pointing this out (issue #404).
Fixed jbrowse.conf faceted track selector configuration examples
not working as written. Thanks to Cris Lawrence for pointing this
out.
Fixed a bug in which right-clicking on feature labels in an
HTMLFeatures-based track did not bring up the right-click menu for
a feature. Thanks to Cris Lawrence for pointing this out (issue #408).
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. Here's a side-by-side comparison of what you would write in the old JSON and new text configuration formats to make JBrowse use the old Simple track selector.
jbrowse_conf.json
jbrowse.conf
"trackSelector": {
"type": "Simple"
}
[trackSelector]
type = Simple
It's easier to configure tracks in the new format, as well. Here's a typical BAM Alignments2 track configuration in both formats, for comparison.
[tracks.volvox-sorted-bam]
storeClass = JBrowse/Store/SeqFeature/BAM
urlTemplate = ../../raw/volvox/volvox-sorted.bam
type = JBrowse/View/Track/Alignments2
key = My BAM track
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 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.
Release 1.11.0
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
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.
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.
JBrowse 1.10.12 has been released, and we are asking all users of JBrowse 1.10.7 1.10.10 and higher to please upgrade to this release as soon as possible.
The story behind this is a bit embarassing: I discovered today that JBrowse releases 1.10.7 through 1.10.10 and 1.10.11 shipped with usage analytics reporting disabled. This is a little piece of code that tracks how many installations and users of JBrowse there are, and the data it provides is absolutely crucial for the JBrowse project, because we use it to try to convince funding agencies that JBrowse is a project worth funding.
So, yes ... this release has analytics reporting re-enabled. There are also a few other minor improvements and bug fixes. Please upgrade to this ASAP if you are using JBrowse 1.10.7, 1.10.8, 1.10.9, 1.10.10 or 1.10.11, because we really need that analytics data.
**Edit (Dec 11): **realized just now that only 1.10.10 and 1.10.11 were affected. Forgot to account for branching and merging last night.
bam-to-json.pl and flatfile-to-json.pl now support a
--metadata argument that can add a metadata stanza to track
configurations they generate.
Multi-valued attributes in default feature detail popups are
displayed as a string of boxes, each containing a value, to avoid
misinterpretation. Thanks to Cris Lawrence for pointing out the
need for this.
Bug fixes
Re-enabled usage analytics reporting, which had been disabled by a
stray piece of debugging code since the 1.10.7 release.
Fixed a bug in which the tooltip in canvas-based feature tracks
would sometimes display incorrect label or description text.
JBrowse 1.10.11 has been released, with many bug fixes and better support for spliced alignments in SNPCoverage tracks.
(Download disabled. Please download the[ 1.10.12 release](https://jbrowse.org/jbrowse-1-10-12/ "JBrowse 1.10.12 maintenance release") or later instead.)
Minor improvements
Made the sequence track's "zoom in to see sequence" placeholder
take up less vertical space. Thanks to Scott Cain for pointing out
that making it be the same height as it will eventually be when
zoomed in to base level is silly.
By default highlighting features after searching for them by name
is now turned off. Set the highlightSearchedRegions top-level
conf variable to true to turn this back on. Turns out, most
people seem not to like this behavior. Thanks to Gregg Helt and
Cris Lawrence for pointing this out.
SNPCoverage tracks now correctly display "skipped" regions in
alignments, such as those produced by TopHat. Thanks to Josh
Orvis, Gustavo Cerquiera, and others for reminders that this was
still an issue.
SNPCoverage tracks now provide per-strand counts of "reference"
reads at each position, like they already were providing for
reads with mismatches.
SNPCoverage tracks now accept a mismatchScale configuration
variable that sets the viewing scale (i.e. zoom level, pixels per
bp) above which base-level mismatches will be drawn. Defaults to
1/10. Making this value larger can speed up SNPCoverage tracks for
high-coverage data at the cost of needing to zoom in further to see
mismatches.
setup.sh now uses curl for downloading things instead of wget,
since curl is more widely available. Thanks to Keiran Raine for
suggesting and implementing this (issue #393).
Bug fixes
Fixed a bug in which generate-names.pl would sometimes report the
incorrect number of hashing bits in verbose output, and would
sometimes use the number of hashing bits for an existing index even
if that index was being regenerated. Thanks to Richard Hayes for
pointing out the incorrect log output.
Fix generate-names.pl crashing on some older versions of Perl with
an error like Bareword "POSIX::O_RDONLY" not allowed while "strict subs" in use. Thanks to Chris Childers for pointing this out.
Fix setup.sh failing on some older versions of Perl. It now runs
generate-names.pl with the --safeMode flag.
Fixed a bug where the value display in SNPCoverage tracks would
sometimes report "NaN%" for the reference when no reads cover a
region.
Fixed a bug in which activating rubberband zooming using the SHIFT
key while in highlighting mode would cause all the tracks to be
dragged when attempting to highlight a region afterward. Thanks to
Erik Derohanian for pointing out and fixing this (issue #387).
Fixed the location of the dojo/nls directory in release zipfiles.
Was erroneously in src/nls, supposed to be src/dojo/nls. Thanks to
Matt Bomhoff for pointing this out.
The in-memory GFF3 parser now copes with a missing newline at the
end of a GFF3 file. Previously, the last line was ignored if it
did not end with a newline character. Thanks to Colin Davenport
for pointing this out (issue #394).
JBrowse 1.10.10 has been released, with new compression support in generate-names.pl, configurable inter-track spacing, and quite a few bug fixes.
(Download disabled. Please download the[ 1.10.12 release](https://jbrowse.org/jbrowse-1-10-12/) "JBrowse 1.10.12 maintenance release") or later instead.)
Minor improvements
Spacing between tracks is now configurable by setting
view.trackPadding in the configuration. Thanks to Chenchen Zhu
for suggesting this (issue #377).
If reference sequences are defined, but no tracks are yet added,
JBrowse will start normally instead of going to the
"Congratulations, JBrowse is on the web" page.
generate-names.pl now supports a --compress option that
compresses the name index files to save server disk space. Thanks
to Richard Hayes for pointing out the need for this (issue #378).
Bug fixes
generate-names.pl now uses IO::Uncompress::Gunzip instead of
PerlIO::gzip to read compressed VCF files. This fixes a bug in
which only the first few hundred names in a VCF were indexed.
Thanks to Cris Lawrence for pointing this out (issue #380).
Fixed a bug in which generate-names.pl would crash if run with
--incremental and no existing names index. Thanks to Richard
Hayes for pointing this out (issue #379).
Fixed a bug in which generate-names.pl would sometimes choose the
wrong number of hash bits when performing incremental updates,
leading to the old data being lost. Thanks to Richard Hayes for
lots of help troubleshooting this.
Fixed bug where other tracks are visible underneath pinned tracks
when the display is scrolled down. Thanks to Ed Lee for pointing
this out.
Fixed a bug in which tooltip does not hide after the mouse leaves a
Wiggle track in Safari 5 and 6. Thanks to Charles Girardot for
pointing this out.
Fixed a bug in which the main.css file for plugins was not being
correctly loaded in some installations. Thanks to Matt Bomhoff for
pointing this out.