1.1.0.beta
Pre-release
Pre-release
Features
- Update to BLAST 2.6.0+
- We put a customizable default parameter in BLAST searches to only return hits with evalues stronger than 1e-5 (BLAST's default of evalue 10 includes too many spurious hits that are confusing to junior users)
- We make it explicit that '-task blastn' option is used for BLASTN (instead of BLASTN's default behaviour of running megablast)
- Stable URL for results: meaning that results page can now be bookmarked, shared, or linked to from your lab notebook
- "Download FASTA of all" link in the sidebar can handle many sequences (previously it was disabled if >30 hits)
- Ability to download individual or all alignments in FASTA format (code from Kablammo project at http://kablammo.wasmuthlab.org/)
- Ability to download alignment overview in SVG and PNG image (code from Kablammo project at http://kablammo.wasmuthlab.org/)
- Use a, b, c numbering for HSPs to distinguish easily from hits
- Show summary of BLAST database and search parameters at top of results page
- Show coverage and identity in hits table
- results can be opened in a new tab by pressing 'Cmd' / 'Ctrl' button while clicking on the submit button (like any other link).
- Drop support for Ruby older than 2.3. This allows SequenceServer to be embedded in Rails 5, means we benefit from performance improvements in new Ruby, and importantly makes code and dependencies easier to maintain and test
- If BLAST was downloaded by SequenceServer or path to BLAST binaries was explicitly provided by the user, BLAST searches are run in "sandbox mode". In sandbox mode, SequenceServer cannot access any other system command. This increases security.
- We no longer require BLAST databases to have been created with -parse_seqids option of makeblastdb
Bugfixes
- Alignment overview: colour each HSP by its evalue (instead using the evalue of the hit)
- Fix crash when downloading amino acid sequences that include stop codons (*)
- All code and fonts (except Twitter badge) are loaded locally
Known issues
As this is beta software, a few things may not work as expected. Following is a list of known issues that we are currently working on:
- Performance with many number of hits: e.g., sequenceserver doesnt load the results of BLASTing a 300 kilobase file including >1000 queries against itself fails.
- Deploying on suburi (e.g., antgenomes.org/sequenceserver) currently doesn't work
- Hits table can look jumbled up if BLAST search returns multiple hits with same evalue
- Sidebar height is not appropriately constrained
- 6 tests fail on the Travis code checker
Under the hood changes
- We now use browser's default form submission behavior instead of using AJAX. This allows results to be opened in a new tab by pressing 'Cmd' / 'Ctrl' button while clicking on the submit button (like any other link).
- Previously, submitting the search form and obtaining results from the server would be accomplished in one long HTTP request. This was problematic for long running BLAST searches as production servers (e.g., Nginx, Apache) drop connections after a set interval. Now search form submission creates a 'job' (with a unique identifier) whose status is queried repeatedly by the result page. Such 'asynchronous' approach is more scalable and should also work well with job schedulers like qsub and bsub.
- The server now returns results in JSON format instead of HTML format. We use the React framework along with JSX to generate HTML results directly in the browser. Access to raw results directly in the browser has enabled us to test a few different visualisations for BLAST results (not part of this release). This approach also allows the use of 'curl' to obtain results in command line and process the results in any scripting language.