I get the following error and have no clue what to do:
[2019-12-09 14:10:25] INFO Reading configuration file: /home/nick/.sequenceserver.conf.
Error obtaining BLAST databases.
Tried: blastdbcmd -recursive -list /mnt/blast-db -list_outfmt “%f %t %p %n %l %d”
BLAST Database error: Error: Not a valid version 4 database.
Please could you report this to ‘https://groups.google.com/forum/#!forum/sequenceserver’?
Anyone any idea?
Did you manage to figure it out? Sounds to me like a corrupted file. Is this inside docker? Maybe files are not readable inside the container somehow (permission issue). Which version of sequenceserver are you using and what exactly did you to update the databases?
I’m hitting this same message. The permissions idea lead me to find this
ls -@l, indicating the newly created blast databases had the com.appl.quarantine flag set. Removing this flag, however, if I did indeed do it correctly (the flag is no longer visible, but perhaps still set), didn’t yet seem to solve the problem.
ss version 1.0.12
Thanks for sharing. Maybe the quarantine flag needs to be removed recursively? Like, including on the folder itself containing the databases.
Also, directly running the command that sequenceserver runs internally to get the list of databases can sometimes be insightful:
blastdbcmd -recursive -list /my/path -list_outfmt “%f %t %p %n %l %d”
I just realised that you would also get this error if your BLAST databases were create using BLAST 2.10.0 which creates v5 databases. These can be read by BLAST 2.9.0, but not below.
SequenceServer 1.0.12 uses BLAST 2.2.30 by default but can work with BLAST 2.9.0 as well. Just download BLAST 2.9.0 and provide the path to SequenceServer using the -b command line option or update config file:
sequenceserver -s -b /path/to/blast_2.9.0
I must add that SequenceServer 1.0.12 is not rigorously tested using recent releases of BLAST as our efforts have been focussed on version 2.0 of SequenceServer 1, which is rigorously tested using recent releases of BLAST and guarantees backward compatibility all the way back to BLAST 2.2.30.
There was a change in the database structure last year. Could that be the problem?
Yes, that can be the problem.
The new database structure was introduced in BLAST 2.8.0. One would have to explicitly use the -blastdb_version option of makeblastdb to use the new database structure. However, with BLAST 2.10.0 the new database structure is the default.
The new database format cannot be read by BLAST versions older than 2.8.0. (I said 2.9.0 in my last email - I stand corrected.)
This is slightly problematic as the old stable version of sequenceserver (1.0.x) uses BLAST 2.2.30 by default and will inevitably run into problems if BLAST databases using the new structure are present in the database directory (Iike the the nr and nt databases from NCBI). This can be worked around though, as explained in my previous email.
Thanks guys, for raising the issue and helping get to the bottom of this.
Thanks for all the feedback and troubleshooting. Indeed this appears to be exactly what has happened.
Going to move to the beta, which I should have been on in the first place.
Leads me to a question, perhaps a new topic.
Can anyone point me to a vanilla docker-compose (not just Docker) example using the beta4? I’m struggling to figure out why it’s different than v1.