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
- JBrowse-1.15.0.zip - 3.1M file SHA1 1899fb9fd83738e5c2985517222d80667fec840f
- JBrowse-1.15.0-dev.zip - 8.5M file SHA1 e3cc637b1e90c641a8ca1caf8878a8d3ba9c50ab
- JBrowse-1.15.0-desktop-win32-x64.zip - 68M file SHA1 1e088e3cbf94194bcf73ebbc8c03e6f2e59e0829
- JBrowse-1.15.0-desktop-linux-x64.zip - 66M file SHA1 4cdb1a6c65cff0831b982b34e1113fde8c5cb649
- JBrowse-1.15.0-desktop-darwin-x64.zip - 66M file SHA1 06c22218d8d37355a0d8ea2084c3dea847bc249c
Major improvements
- Added support for displaying alignments from CRAM files, using the new npm module [@gmod](https://www.npmjs.com/package/<a href=)/cram">@gmod/cram. Thanks to @keiranmraine, @cmdcolin, @nathanhaigh, and the authors of
htslib
andhtsjdk
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 withdisableSearch
. 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: setdontRedispatch=region
if there are very largeregion
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
orNeatHTMLFeatures/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 settingallowCrossOriginDataRoot = 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 whennode
is not installed, printing a decent error message. (issue #1082, issue #1083, @cmdcolin)