Skip to content

2.0.0

Compare
Choose a tag to compare
@yeban yeban released this 10 Jan 19:41
· 316 commits to master since this release
  1. Upgrade to BLAST+ 2.12.0
  2. We rolled out a framework over the last two releases to deal with issues arising from the introduction of the new BLAST database format and databases created without the -parse_seqids option of makeblastdb. This took the form of SequenceServer trying to detect old format and non-parse_seqids databases on startup and forcing users to upgrade the databases to the new format or rebuild with -parse_seqids option. We are changing our approach. SequenceServer will still detect old format and non-parse_seqids database on startup, but it will no longer force users to upgrade or rebuild BLAST databases. Instead, it will display a warning for each such database and launch as before. For non-parse_seqids databases, SequenceServer will additionally disable FASTA download links on the results page.
    • To rebuild BLAST databases and enable FASTA download links, use sequenceserver -m.
    • We had previously noticed that mixing old and new format databases can cause BLAST searches to fail. We have not been able to replicate these results with BLAST+ 2.12.0. If you encounter any such issue, please try upgrading old format databases with sequenceserver -m and report the issue.
    • Upgrading or rebuilding databases can be slow for very large databases and fail if sequence ids are longer than 50 characters. The latter is a limitation of BLAST. sequenceserver -m informs users of these limitations and also advises to backup the databases before reformatting (inspired by Lukasz Sobala's experience).
    • Thanks to all the users who tried the initial approach and reported issues. Most of them are documented below. Special thanks to @Shellfishgene for being one of the first to critique the initial approach (#513).
  3. The detection of old and new format databases has been revised to use the %v option of blastdbcmd -list_outfmt in BLAST+ 2.12.0. This is more robust than our initial approach which relied on file extensions and would miss some cases.
  4. Database aliases created using blastdb_aliastool are now ignored by the database reformatting utility. This prevents a bug where the reformatting utility could 'corrupt' the larger database that was referenced by the alias (credit: Lukasz Sobala, #521; special thanks for providing a wonderfully detailed bug report).
  5. Detection of non-parse_seqids option would fail in several cases (see issues #511, #512, #519). We have fixed the reported issues and an unreported issue with multi-part databases.
  6. Attempting to reformat databases created without the -parse_seqids option using sequenceserver -m, would end in the following error message “Error: [makeblastdb] No sequences matched any of the taxids provided”. Fixed it.
  7. SequenceServer should continue its startup routine after offering to create BLAST databases during the initial setup, but a programming error prevented that and it would instead quit after creating BLAST databases. Fixed it.
  8. Fixed a rare issue where SequenceServer would classify a non-FASTA file as FASTA during initial setup (or when using sequenceserver -m) and offer to create BLAST databases from it (#567).
  9. Fixed a rare issue where SequenceServer would fail to scan databases directory during startup (or when using sequenceserver -m) when running inside a docker container.
  10. SequenceServer asks for an optional taxonomy id during database creation, however, a programming error accidentally made it compulsory (sorry!). We have made it optional again.
  11. The plugin/extensions file (-r option) is now loaded before searching for BLAST binaries and databases so that these aspects of SequenceServer can also be customised through the extensions file for advanced use cases (credit: Elvin).
  12. Ability to drag and drop a FASTA file to the search form was not working in Safari. Fixed it.
  13. The form state was not correctly restored in some cases when using the browser's back button or the ‘Edit search’ link on the results page. Fixed it.
  14. The database 'Select all' button would get stuck if a database was manually selected first and the 'Select all' was subsequently used (#562). Fixed it. Thanks to @MatthAlex for reporting the issue.
  15. We have introduced an optional, experimental widget to display databases in tree format - very helpful if you have a long list of databases. The feature was contributed by @Bjoernsen (#520) and is similar to what was previously produced by lepbase (#307). See #520 for details. To activate the widget, add ":databases_widget: tree" to your SequenceServer config file (which is ~/.sequenceserver.conf by default). The tree widget additionally allows linking databases to external page (how to do so will be documented on the website in due time)
  16. Commas are now allowed in advanced params input so that multiple values can be provided to options such as -taxids (credit: Lukasz Sobala)
  17. Include an entry for the very helpful -task option to the handy reference of command-line BLAST options included in the search form - accessed using the ? button next to advanced params input field (#517).
  18. Removed the twitter button from the footer and made the footer more compact.
  19. In the results page we have reverted to showing identity of top HSP in the per-query hit table instead of the average identity of all HSPs for the matching database sequence (credit: Etienne Bucher, #506).
  20. HSPs in Kablammo visualisation are no longer labelled if there are too many HSPs, as too many labels creates clutter without adding much value (#518).
  21. SequenceServer used to automatically hide sidebar containing download links etc. if the BLAST search resulted in no hits. However, as the sidebar also contains the links to edit or start a new search since the last few candidate releases, the sidebar is now always shown.
  22. Ensure long query sequence ids wrap in the sidebar instead of shooting past the sidebar boundary (#571). Credit @MatthAlex
  23. The links to download FASTA and pairwise alignment of all hits are now disabled if the BLAST search results in no hits (#552).
  24. We have introduced a new num_jobs setting. This is the number of concurrent BLAST searches that SequenceServer will run - the default value is 1. This is distinct from num_threads, which is passed to BLAST, and is the number of threads that each BLAST job will use.
  25. Made sure that SequenceServer will write default values of new configuration options to the configuration file for new users. Existing users can update their configuration file to see all possible configuration values by running sequenceserver -s
  26. The whichdb function, that can be used in link generators to determine which database a hit came from, was returning CommandFailed error in some cases. Fixed it (credit: @jveera888, #529).
  27. If you like to customise SequenceServer and use our docker image, there is now an option to build JS and CSS assets as part of the docker build step: just add --target=minify to your docker build command. Note that this requires BuildKit to be enabled (credit: Nathan Weeks)
  28. Huge shout-out to @Iain-S for fixing several code style issues (JS and CSS), and revising our code linting framework (#531, #532).