UNPKG

@gmod/jbrowse

Version:

JBrowse - client-side genome browser

1,078 lines (773 loc) 151 kB
# 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&rarr;mRNA&rarr;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&rarr;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, pull #979, pull #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! (pull #972, @loraine-gueguen) * Improved documentation of the `CategoryURL` plugin. (pull #985, @enuggetry) # Release 1.12.3 2017-05-02 19:20:01 America/Los_Angeles ## 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). # Release 1.12.2 2016-05-31 America/Los_Angeles Special Release for Apollo # Release 1.12.1 2016-03-01 03:47:38 America/Los_Angeles ## Minor improvements * Update Dojo to 1.8.10 ## Bug fixes * Fix RegexSearch plugin and NeatCanvasFeatures plugin - search track loading failure (issue #676) * Fix compat_121.html to access /css directory # Release 1.12.0 2015-12-18 17:40:39 America/Los_Angeles ## New features * Added ability to open a new genome in FASTA format from the browser. Also supports indexed FASTA. Thanks to Bradford Powell for the original indexed FASTA contribution (issue #495, issue #647). * Support for inline reference sequence configurations. * Created stand-alone desktop version of JBrowse using the Electron platform for OSX, Windows, Linux (issue #647). ## New plugins * NeatHTMLFeatures - Add the drawing of introns and gradient features to HTML tracks. * NeatCanvasFeatures - Add the drawing of introns and gradient features to Canvas tracks. * CategoryUrl - Implements a cat= URL option to display tracks for a given category (issue #618). * DebugEvents - a plugin to display global publish and milestone events on the debug console. * HideTrackLabels - Adds a toolbar button to toggle the display of track labels on and off (issue #614). ## Minor improvements * Added new menu format to support loading your own genome. The open genome option can be hidden via `hideGenomeOption` in config, and the classic menu style can be restored via `classicMenu` in config. * Added ability to load custom histograms for tracks loaded from flatfile-to-json.pl (i.e. override a pre-existing histogram store). See (issue #612). * Added these options to add-bw-track.pl --clip_marker_color <color>, --bg_color <color>, --height <value> (issue #510). * Added an option for Wiggle tracks, scoreType: 'avgValue', which helps preserve continuity when zooming in on certain tracks like GC-content. It complements the scoreType: 'maxValue' introduced in 1.11.6. Thanks to Han Lin for the pull request (issue #504). * Clarify track filter box description and feature search box "placeholder" text. (issue #611) * Implement option to have a separate location box from search box (issue #611, issue #652). * Move CSS files into css folder. * Added ability to specify the set of startCodons and stopCodons in the config files. Thanks to Eric Rasche for the contribution (issue #657)! ## Bug fixes * Add Travis-CI and jshint linting to build (issue #628). * Fixed a bug where the BAM popup boxes would display some incorrect info due to byte packing. Thanks to Thomas Downs for contributing the fix. * Fixed a bug where grid lines wouldn't render at some particular zoom levels (issue #514). * Fixed a bug where the user's --workdir parameter would be deleted which could have unintended side effects if the --workdir was pointing to important data, but this is uncommon (issue #563). * Allow falsey values to be used in browser.cookie. * Fix minor issue where sometimes the length field of refSeqs.json was missing. * Fix some issues that occurred when a reference sequence was named '0' (issue #662, issue #610). # Release 1.11.6 2015-02-12 18:27:38 America/Chicago ## Minor improvements * Added the ability to customize the contents of HTMLFeatures and CanvasFeatures mouseover tooltips more extensively. Thanks to David Muller for the original bug report and Colin Diesh for the fix (issue #480). * Added new options for BigWig files to use min/max summary values when zoomed out using `scoreType`. Thanks to Scott Cain for reporting the issue and to Colin Diesh for the fix (issue #518). * Added a checkbox for wiggle type tracks to have log scale. Thanks to Han Lin for the pull request (issue #502). * Added the ability to display paired-end reads in the same direction on Alignments2 tracks with the "Use reverse template" option. Thanks to Tomaz Berisa and Colin Diesh for their contributions (issue #485). * Added the ability to specify a codon table (or partial codon table) for the Sequence track. * Added the ability to show or hide the main menu bar using the configuration file. ## Bug fixes * Fixed "boolean is not a function" error when using CanvasFeatures tracks with the Segments glyph in some situations. * Fixed a dialog box display issue for VCF variants with "no call" specified (issue #513). * Fixed loading files from certain filepaths with special characters. Thanks to Ben Bimber for reporting and helping diagnose the bug (issue #508). * Fixed popup-dialog callbacks not being called on BAM Alignments tracks in 1.11.5. * Fixed systemwide installations of JBrowse perl modules when using Module::Build. * Fixed a bug when displaying SNPs on hard clipped reads. Thanks to Thon de Boer for the bug report and to Colin Diesh for the fix (issue #516). * Fixed a bug when displaying SNPs on spliced alignments. Thanks to GitHub user 09140930 for the bug report and to Colin Diesh for the fix (issue #523). * Fixed a bug that affected some VCF and GFF popup dialogs in some browsers, particularly Chrome 38 (issue #522). * Fixed a bug with the incremental indexing with generate-names that associated the wrong track with the name store. Thanks to Richard Hayes for reporting this issue and to Colin Diesh for the fix (issue #526). * Fixed the `--workdir` parameter in generate-names.pl (issue #506). * Fixed the display of alternative alleles in the genotype for VCF pop-ups (issue #533). * Fixed an issue where some paired-end read data wouldn't display properly if they had the same start position (issue #521). * Output .htaccess file for generate-names.pl when using the compress option. Thanks to Sebastien Carrere for reporting the bug (issue #541). * Fixed a small bug with being able to scroll past end of chromosome when using the `--sizes` option to prepare-refseqs.pl (issue #535). * Fixed a small internal code inconsistency with the positioning of the vertical position line. Thanks to Anurag Priyam for the fix (issue #545). * Fixed a small bug with some stylesheets not being able to be used for the CanvasFeatures coloring, for example, LESS stylesheets. Thanks to Anurag Priyam for reporting the issue (issue #527). * Fixed a small bug with mouseovers on Wiggle type tracks. Thanks to Han Lin for finding and fixing this bug (issue #503). * Removed XS tag from the strand calculation for alignments and made it an optional rendering option for BAM files with the "Use XS" option. Thanks to Kieran Raine and the pull request (issue #473). * Added a bugfix that prevented viewing the details of haploid VCF files. Thanks to Colin Diesh for finding and fixing this bug (issue #536). * Added a bugfix for an issue that made browsing very buggy when using private browsing mode in Safari. * Fixed the `shortDescription` option for the mouseover description of tracks in the Hierarchical track list (issue #553). * Re-added filter options that were missing for SNPCoverage tracks. # Release 1.11.5 2014-09-04 16:03:22 America/Chicago ## Minor improvements * 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). # Release 1.11.4 2014-05-14 12:04:54 America/Chicago ## Minor improvements * 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 setu