@gmod/jbrowse
Version:
JBrowse - client-side genome browser
1,028 lines (740 loc) • 167 kB
Markdown
# Release 1.16.6 2019-07-12 01:20:19 UTC
## Minor improvements
* Add name regularization for drosophila style chromsome naming so that
2L maps to chr2L and vice versa (@scottcain)
* Add ability to index names in a BEDTabix file, enabled by default.
Thanks to @billzt for the idea and implementation (pull #1393)
## Bug fixes
* Fix the side scrolling on Mac misbehaving and triggering the browser's
back action (a bug that existed only in 1.16.5). Thanks to @nathandunn
for debugging (issue #1397)
# Release 1.16.5 2019-06-12 16:57:19 UTC
## Minor improvements
* Added better error reporting if there is a BAI file for a genome that
is longer than 2^29 and requires a CSI index
* Added default dontRedispatch=chromosome,region which avoids long
GFF3Tabix redispatching for common gff3 types that don't need it.
* Added a `hideIframeDialogUrl` option to hide the iframe url in a
`iframeDialog` popup. Thanks to @mictadlo for the suggestion (issue
#1365)
* Updated @gmod/tabix and @gmod/bam to unzip bgzf chunks as they are
received instead of performing chunk merges. This also allows
actual fileOffset to be used as a feature ID instead of CRC32 hash
(@cmdcolin)
* Added regularization of chromosome names using roman numerals,
common in both S. cerevisiae and C. elegans genome communities.
Thanks to @scottcain for assistance (pull #1376, @cmdcolin)
* Added ability for vertical scroll events to bubble out of the jbrowse
div or iframe, which can be more intuitive in embedded jbrowse's.
Otherwise, the GenomeView stopped all vertical scroll events in it's
area. If you need the old behavior use `alwaysStopScrollBubble`.
(@cmdcolin, pull #1373)
## Bug fixes
* Fixed a long standing issue with BigWig files not accessing the
lowest summary zoom level (e.g. the first one after unzoomed).
(@cmdcolin, issue #1359)
* Fixed a bug with using the scoreType: maxScore configuration on
Wiggle tracks failing at non-summary zoom levels. Thanks to
@patrickcng90 for reporting
* Fixed a bug with name regularizing that particularly affected CRAM
on mitochondrial chromosomes. Thanks to @sachalau for patience and
sample data for debugging this issue! (issue #1367, @cmdcolin)
* Fixed issue with GFF3/Tabix types colliding their attribute names
with the field e.g. if start=0 was in column 9. Thanks to
@loraine-gueguen for reporting (issue #1364).
* Fixed an issue with NeatHTMLFeatures when zoomed out. Thanks to
@abretaud for the implementation and fix (pull #1368).
* Restored ability to access widest zoom level from bigwig. Thanks
to @lukaw3d for noticing and debugging (issue #1375, @cmdcolin)
* Fixed some minor parsing of 'b' type data series in CRAM files,
which happens when CRAM is not using reference based compression
so it is uncommon (@cmdcolin)
* Added some more checks for track types for combination tracks (issue
#1361)
# Release 1.16.4 2019-04-10 16:58:02 UTC
## Minor improvements
* Added `indexedFeatures` tracklist attribute for GFF3Tabix track types
which controls the feature types from a GFF3Tabix file that are
indexed. Thanks to @loraine-gueguen for the idea and implementation!
(pull #1337, @loraine-guegen)
* Added `inferHTMLSubfeatures` which automatically creates multiple
mRNA transcripts from a single gene parent feature. Thanks to
@abretaud for the idea and implementation! Note that this is enabled
by default now (pull #1343, pull #1340)
* Updated jbrowse.org website to run entirely off amazon S3 (pull #1347,
pull #1348)
## Bug fixes
* Added better error reporting to GFF3Tabix tracks for if a parsing
error occured. Thanks to @nathanhaigh for reporting (@cmdcolin)
* Added fix for VCF that don't contain alternative alleles (@cmdcolin)
* Added better error handling if there is a case where a tabix file is
loaded that is on a genome longer than 2^29. CSI indexes are needed for
this. Old versions of tabix which hadn't invented CSI would generate
invalid tabix indexes in this case. Thanks to Hans Vasquez-Gross for
reporting (@cmdcolin)
* Fixed link in documentation. Thanks @agarciamontoro (pull #1341)
* Fixed issue with ucsc-to-json.pl creating subfeatures with the wrong
strand. Thanks to @sachalau for finding and fixing (pull #1346)
# Release 1.16.3 2019-02-21 00:48:52 UTC
## Bug fixes
* Fix BioPerl setup after changes to the BioPerl distribution caused
setup.sh to fail in all past JBrowse versions (issue #1310, @cmdcolin)
* Fix issue with NeatCanvasFeatures not drawing gradients on some
features. Thanks to @mara-sangiovanni for reporting (issue #1311,
@cmdcolin)
* Fix issue for exporting GFF3 for some nested attributes by dumping
JSON into the value field. Thanks to @dionnezaal for reporting
(issue #1309, @cmdcolin)
# Release 1.16.2 2019-02-01 03:31:36 UTC
## Minor improvements
* Allow configuring the cache busting behavior for adding random ?v= value
to config file requests. This can be configured in index.html. Thanks to
user @sandilyaamit for reporting, this is actually important to disable
when using Amazon presigned URLs (@cmdcolin)
* Adds `fixBounds` config for XYPlot tracks which can be set to false to
disable the behavior of rounding up or down on the min_score/max_score
variables for the ruler. Thanks to @scottcain for the suggestion
(pull #1306, @cmdcolin)
## Bug fixes
* Fix ability to use CSI indexes with BAM files since 1.16.0 (@cmdcolin)
* Fix ability to read some CRAM files with unmapped mates (@cmdcolin)
* Fix issue with the browser loading NaN locations on startup (@cmdcolin)
* Add fix for exporting GFF3 for newer browsers that have Array.values()
enabled. Thanks to Scott Cain for reporting (@cmdcolin)
* Improve error message when refSeqs=file.fai config fails to load
(@cmdcolin)
# Release 1.16.1 2018-12-28 02:24:11 UTC
## Minor improvements
* Made a change to make Hierarchical track selector much faster on intial
browser load for very large tracklists (@cmdcolin)
* Updated to webpack 4 for some faster build times (pull #1270, @cmdcolin)
* Updated to use dojo/dijit/dojox 1.14 (@cmdcolin)
* Updated NeatCanvasFeatures to allow non-coding transcripts to be colored
differently with `style->unprocessedTranscriptColor`. Thanks to @billzt
for the bug report (issue #1298, @cmdcolin)
## Bug fixes
* Fixed issue where data directories with spaces in them were giving errors
due to CORS on JBrowse Desktop (issue #1285, @cmdcolin)
* Fixed issue where the name store could be queried before being initialized
(issue #1286, @cmdcolin)
* Fixed an issue for large BAM headers failing to load post-@gmod/bam
integration (@cmdcolin)
* Fixed access to some cross-origin resources (issue #1289, pull #1292,
@cmdcolin)
# Release 1.16.0 2018-12-13 17:24:29 UTC
## Major improvements
* Added ability to view paired read data as connected entities for BAM and
CRAM store classes. There are multiple different viewing options for this
including plotting by insert size, plotting as connected arcs, or pileup
views for the paired reads. Additonally multiple color schemes are available
for coloring by insert size, pair orientation, mapping quality, and more.
Thanks to @garrettjstevens, @rbuels, @AndyMenzies, and @keiranmraine for
testing. Also a big thanks to @jrobinso from @igvteam for contributions to
CRAM code related to paired reads (pull #1235, @cmdcolin)
## Minor improvements
* For users with the "dev" or compiling JBrowse from source code, the ./setup.sh
now performs a full webpack production build (pull #1223, @cmdcolin)
* Created new BAM parsing mechanism using the npm module [@gmod/bam](https://www.npmjs.com/package/@gmod/bam).
Users might see some modest performance improvements due to enhanced tooling.
Thanks to @rbuels and others for testing and feedback (pull #1215, issue #1178,
@cmdcolin)
* setup.sh now supports setting a `JBROWSE_PUBLIC_PATH` environment variable for
more flexibility in iframeless embedding scenarios (issue #1213, @rbuels)
* Added support for indexing arbitrary fields from GFF3Tabix files by setting
nameAttributes in the track config e.g. nameAttributes=name,id,customfield.
(issue #1115, pull #1222, @cmdcolin)
* Add support for generate-names to index VCF features that have multiple IDs in
the ID column (@cmdcolin)
* Added documentation on embedding JBrowse in an iframe and in a div, including
how to embed JBrowse using a custom JavaScript object as a configuration
(pull #1228, pull #1243, @rbuels and @garrettjstevens)
* Added ability to render non-coding transcript types to the default Gene glyph
which helps when a gene feature has a mix of coding and non-coding subfeatures
(issue #1106, pull #1230, @cmdcolin)
* Created new VCF parsing mechanism using the NPM module
[@gmod/vcf](https://www.npmjs.com/package/@gmod/vcf). Thanks to @cmdcolin and
others for testing and feedback (pull #1227, issue #1199, @garrettjstevens)
* Added ability to open "chrom.sizes" files from the Open sequence dialog
(issue #1250, pull #1257, @cmdcolin)
* Added a config `datasetLinkToParentIframe` to make the dataset selector use
window.parent for when jbrowse is in an iframe (pull #1248, @enuggetry)
* Improved error message that is displayed when a data file cannot be fetched
via CORS (@rbuels)
* Added some word wrapping for long unbroken fields in the View details
popups. Thanks to @luke-c-sargent for the idea (issue #1246).
* Added `hideImproperPairs` filter for Alignments2/SNPCoverage tracks which
disambiguates from missing mate pairs (pull #1235, @cmdcolin)
* Added `useTS` coloring option for RNA-seq strandedness, similar to the `useXS`
that existed previously (pull #1235, @cmdcolin)
* Added a --bgzip_fasta option for prepare-refseqs.pl and also the ability
to index reference sequence names if they are manually specified as a
fasta index e.g. `refSeqs=genome.fai`. Thanks to @FredericBGA for the report!
(issue #1281, pull #1282, @cmdcolin).
## Bug fixes
* Fixed issue where some generate-names setups would fail to index features.
Thanks to @BioInfoSuite for reporting (issue #1275, pull #1283, @cmdcolin)
* Fixed issue with getting feature density from BAM files via the index stats
estimation (issue #1233, @cmdcolin)
* Fixed issue where some feature mouseovers where not working properly (issue
#1236, @cmdcolin)
* Fixed issue where instantiating JBrowse via `standalone.js` didn't work when
in a production build with JBROWSE_PUBLIC_PATH overridden (issue #1239,
@garrettjstevens)
* Small fix for issue where SNPCoverage would crash on some feature filters
(issue #1241, @cmdcolin)
* Fixed issue where JBrowse Desktop was not able to access remote files (issue
#1234, pull #1245, @cmdcolin)
* Fix issue where the Hierarchical track selector contained a bunch of blank
whitespace. Thanks to @nathanhaigh for reporting! (issue #1240, pull #1253,
@cmdcolin)
* Fixed issue where whitespace surrounding GFF3 attributes and attribute names
was incorporated (issue #1221, pull #1254, @cmdcolin)
* Fixed issue with some GFF3Tabix tracks having some inconsistent layout of
features (issue #1244, pull #1260, @cmdcolin)
* Fixed CRAM store not renaming reference sequences in the same way as other
stores (pull #1277, @rbuels, @cmdcolin)
* Fixed bug where older browsers e.g. IE11 were not being properly supported via
babel (issue #1259, pull #1267, @cmdcolin)
* Fixed bug where some files were not being fetched properly when changing
refseqs. Thanks to @luke-c-sargent for the report (issue #1252)
* Fixed storeTimeout on CRAM files being unused which can result in excessive
fetches (pull #1235, @cmdcolin)
* Fixed issue where JBrowse would load the wrong area of the refseq on startup
resulting in bad layouts and excessive data fetches. Thanks to @hkmoon,
@cmdcolin, and @garrettjstevens for debugging (issue #1190, pull #1235, pull
#1187)
* Fixed issue where CRAM layout and mouseover would be glitchy due to ID
collisions on features (issue #1271, @cmdcolin)
* Fixed parsing of certain bigBed files that were hanging on track startup
(issue #1226, pull #1229, @cmdcolin)
* Fixed issue where some parts of a CRAM file would not be displayed in JBrowse
due to a CRAM index parsing issue (@cmdcolin)
* Fixed an issue where BAM features were not lazily evaluating their tags
(@cmdcolin)
## Notable changes
* Rendering of features in popups, mouseover tooltips, and feature labels were
made to escape HTML. If you are using literal HTML labels in these places
then set the attribute `unsafePopup`, `unsafeMouseover`, or `unsafeHTMLFeatures`
on your tracks. Thanks to @garrettjstevens (pull #1263, @cmdcolin).
# Release 1.15.4 2018-10-05 13:02:55 UTC
## Minor improvements
* Added support for bgzipped indexed FASTA. To use, bgzip your FASTA with
`bgzip -i file.fa`, which generates file.fa.gz and file.fa.gzi and then use
`samtools faidx file.fa.gz`. If you specify the .fa.gz in the track config e.g.
`"urlTemplate": "file.fa.gz"` and have all three files in your data directory,
then they will automatically be detected (issue #1152, pull #1200, @cmdcolin)
* Allow fna and mfa file extensions for FASTA to be recognized by default in
the Open sequence dialog (issue #1205, @cmdcolin)
* Improve the layout slightly for dense features (issue #1210, @cmdcolin)
* Added a `topLevelFeaturesPercent` configuration variable that can be used to
correct feature statistics estimates when `topLevelFeatures` is being used for
a track, or when it contains deeply-nested features. This configuration variable
is currently only used by BAM, BEDTabix, GFF3Tabix, and VCFTabix stores.
(issue #1147, pull #1209, @rbuels)
* Tabix-based data stores use a new storage backend based on the `@gmod/tabix` npm
module. Users should see some modest performance improvements for Tabix-based
tracks. (issue #1195, pull #1209, @rbuels)
* Added `hideSequenceBox` config to allow hiding the FASTA boxes in the View details
popups. Thanks to @andreamini for reporting (issue #1211, pull #1219, @cmdcolin)
* Added `categoryOrder` config to allow sorting the categories in the Hierarchical
track selector. For example, `categoryOrder=VCF,Quantitative/Density,BAM`. Note
that we specify a lowest level subcategory e.g. Quantitative/Density to sort the
parent category Quantitative to a position (issue #1203, pull #1208, @cmdcolin)
## Bug fixes
* Fixed a bug in which feature labels would sometimes be repeated across the view,
in the wrong locations. (@rbuels)
* Fixed error where a chunk size limit error during histogram display would not be
displayed (@cmdcolin)
* Fixed issue where Open sequence dialog will open up the default "data" directory
instead of a blank instance (issue #1207, @cmdcolin)
* Added check for PCR duplicates for CRAM features (@cmdcolin)
* Fixed issue where editing the track names and types in the "Open track" dialog box
was not working when editing multiple tracks (issue #1217, @cmdcolin)
* Fixed issue in which large VCF headers were not always correctly parsed by JBrowse
(issue #1139, pull #1209, @rbuels)
* Fixed issue where the histogram Y-scale bar would appear over features (issue
#1214, pull #1218, @cmdcolin)
# Release 1.15.3 2018-08-29 22:34:53 UTC
## Minor improvements
* Add ability to automatically deduce the storeClass and trackType of files based on
the file extension of urlTemplate. This allows very minimal configs where only
track label and urlTemplate can be specified. (pull #1189, @cmdcolin)
## Bug fixes
* Fixed an issue with servers that use HTTP Basic Authentication on certain browsers,
notably some Chromium, Firefox 60 and earlier, and Safari. Thanks to Keiran Raine
for reporting and @cmdcolin for debugging. (issue #1186, @rbuels)
* Fix issue where searching for reference sequence names would not be navigate to the
typed in reference sequence (issue #1193, @cmdcolin)
# Release 1.15.2 2018-08-16 21:02:27 UTC
## Minor improvements
* Created "index stats estimation" which overrides the older "global stats estimation"
that randomly samples genomic regions of BAM, VCF, etc to find feature density. This
allows initial track load to be faster automatically. (issue #1092, pull #1167,
@cmdcolin)
* Removed the "full" or "dev" releases from the build. If you need a "dev" release, you
can simply download the JBrowse "source code" link from the GitHub releases page, or
use a git clone of the JBrowse repository. This will behave the same as the "dev"
release. (issue #1160, pull #1170, @cmdcolin)
* JBrowse now uses a new binary-file caching and fetching backend based on the
[http-range-fetcher](https://www.npmjs.com/package/http-range-fetcher) and
[tenacious-fetch](https://www.npmjs.com/package/tenacious-fetch) npm modules. Users
may see slightly higher performance when viewing indexed binary formats such as BAM,
CRAM, 2bit, etc. (issue #1155, issue #1175, pull #1165, @rbuels)
* Updated the main jbrowse.org website to use the docusaurus platform. The main docs
for the website are now moved from the GMOD.org server to jbrowse.org. You can find
the latest documentation in the header bar. We hope you will enjoy this upgrade!
There is also a new quick start guide based on setting up JBrowse with indexed file
formats. (issue #1153, issue #1137, pull #1173, @cmdcolin)
## Bug fixes
* Added a more robust HTML processing in Util.js. Thanks to @hkmoon for the idea and
implementation. (pull #1169, @hkmoon)
* Remove utils/jb_run.js from the minified release (issue #1161, issue #1160, @cmdcolin)
* Fixes issue where navigating away from genome browser and returning would not remember
the location. Thanks to Vaneet Lotay for reporting. (issue #1168, @cmdcolin)
* Fixes off-by-one in the display of the size of the genomic region being viewed. Thanks
to @sammyjava for the bug report! (issue #1176, @cmdcolin)
# Release 1.15.1 2018-08-01 23:59:52 UTC
## Minor Improvements
* Add a internal code attribute for XHR requests that use byte-range headers so that if a
server does not support it, an error is returned immediately. Thanks to @theChinster
for the motivating example (issue #1131, issue #1132, pull #1134, @cmdcolin).
* Speed up TwoBit file processing with a robust implementation of the file spec. The
improvements are contained in a new npm module [@gmod/twobit](https://www.npmjs.com/package/@gmod/twobit).
Thanks to @cmdcolin for some testing and motivating examples. (issue #1116, pull #1146,
@rbuels)
* Added feature.get('seq') to CRAM features which enables detailed comparison of the
read versus the reference with the renderAlignment configuration. (issue #1126,
pull #1149, @rbuels)
* Added support for 1000genomes CRAM 2.0 codecs via updates to the @gmod/cram npm module.
(@rbuels)
* Add some better formatting for rich metadata in the "About this track" dialog boxes for
tracks. Thanks to Wojtek Bażant for the idea and implementation! (pull #1148, @wbazant)
## Bug fixes
* Fix bug where prepare-refseqs with indexed FASTA would allows scrolling past the end of
the chromosome (@cmdcolin).
* Fix long standing bug related to not being able to configure dataRoot in the config file.
Now you can set dataRoot=mydirectory to make JBrowse load mydirectory instead of the
default `data` by default (issue #627, pull #1144, @cmdcolin).
* Added hashing of the BAM feature data to generate unique IDs in order to distinguish
reads that have nearly identical information (same read name, start, end, seq, etc).
If the reads literally have identical information in them JBrowse is still unable to
display but this generally seems to be due to limited use case such as secondary
alignments in RNA-seq (issue #1108, pull #1145, @cmdcolin)
# Release 1.15.0 2018-07-20 00:24:49 UTC
## Major improvements
* Added support for displaying alignments from CRAM files, using the new npm module
[@gmod/cram](https://www.npmjs.com/package/@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, pull #1120, @rbuels)
* Added support for the CSI index format for tabix VCF/BED/GFF and BAM files! This allows
individual chromosomes longer than ~537MB (2^29 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, pull #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 (pull #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, pull #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, pull #1074, @cmdcolin)
* Added cache-busting for track config files which actively prevents stale configuration files
from being loaded (pull #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`.
(pull #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, pull #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. (pull #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, pull #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 (pull #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, pull #1119, @nathanhaigh)
* Fixed `setup.sh` behavior when `node` is not installed, printing a decent error message.
(issue #1082, pull #1083, @cmdcolin)
# Release 1.14.2 2018-06-04 23:41:52 UTC
## 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:
```
[GENERAL]
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, pull #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, pull #1064, @loraine-gueguen)
* Fixed a bug in which setup.sh failed if run twice in a row under some circumstances.
(pull #1053, @cmdcolin)
* Fixed a bug in which setup.sh did not accept nodejs version 10 as sufficiently recent.
(pull #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)
# Release 1.14.1 2018-05-02 22:04:33 UTC
## 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)
# Release 1.14.0 2018-04-18 15:14:58 UTC
## 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, pull #844, @cmdcolin)
* There is a new BigBed store type, for opening BigBed files. An example BigBed track configuration:
<pre>
[tracks.GENCODE]
storeClass = JBrowse/Store/SeqFeature/BigBed
type = CanvasFeatures
urlTemplate = gencode.bb
style.label = gene_name,name,id
style.description = gene_bio_type
</pre>
* 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:
```html
<div class="jbrowse"
data-config='"baseUrl": "../jbrowse"'
id="GenomeBrowser"
style="height: 600px; width: 100%; padding: 0; border: 0;"
>
</div>
```
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 (pull #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
# Release 1.13.1 2018-03-28 23:49:27 UTC
## 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, pull #971, @cmdcolin, @rbuels)
* Improve VCF tracks support for GVCF generated by GATK, and fix a number of related
VCF details display bugs. (pull #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, pull #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 a UTR 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, pull #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)
# Release 1.13.0 2018-03-15 01:32:20 UTC
## Major improvements
* JBrowse now uses a Webpack-based build system, which greatly speeds up JBrowse's
initial loading time. 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:
```
{
...
"jbrowse": {
"pluginName": "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, pull #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, pull #1018, @cmdcolin)
# Release 1.12.5 2018-02-28 20:08:35 UTC
## 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! (pull #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, pull #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, pull #924, pull #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. (pull #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, pull #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! (pull #951, @nathanhaigh)
* Added a basic loading screen for when the page is initially loading (pull #1008,
@cmdcolin)
* 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, pull #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, pull #986, @rdhayes)
* Fixed the broken demo track data source in the modENCODE sample data. Thanks
to @cmdcolin for the fix! (pull #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, pull #990, @cmdcolin)
* Fix parsing of the END field in VCF tracks, enabling things like CNV and deletion
variants to be visualized from variant tracks. (pull #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)
# Release 1.12.4 2018-02-14 22:29:20 UTC
## 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, pull #912, @cmdcolin)
* Added code to calculate feature density histograms for Tabix-indexed GFF3
(`GFF3Tabix`) data sources. Thanks to @nathandunn for noticing and fixing
this! (pull #956, @nathandunn)
* Added a new "Hide unspliced reads" menu item to Alignments and Alignments2
tracks that filter out reads that have no `N`s in their CIGAR strings.
Thanks to Deepak Kunni and Nathan Dunn for their work on this.
(pull #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. (pull #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!
(pull #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.
@enuggetry
* 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! (pull #924, @dsenalik)
* Allows for dot-notation instead of JSON (pull #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, pull #958). @rbuels
* Fixed bug in `maker2jbrowse` script that allows `maker2jbrowse` to be installed
in system executable directories, and adds a `--sortMem` option.
(pull #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! (pull #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! (pull #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.
(pull #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, pull #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!
(pull #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