On Mon, Jul 28, 2014 at 9:43 AM, Peter Cock p.j.a.cock@googlemail.com wrote:
On Mon, Jul 28, 2014 at 8:28 AM, Ulf Schaefer Ulf.Schaefer@phe.gov.uk wrote:
Dear Nate, dear Peter
Sorry for the delay in replying.
I can import both HTML and blastdb from a history to a data library. If I try to get the data out of the library into anothre history, I am successful for the html but not for the blastdb. The problem seems to be that the primary data file (the /path/dataset_12345.dat) is empty for the blastdb, while the html primary file has something in it.
OK. Can you tell where Galaxy thinks the library files are on disk, and check to see if the folder of BLAST database files is actually there?
When I try to import the blastdb (from library to history) there is a message along the lines of "can't import empty file". I hypothesise (admittedly without having looked at a line of code) that there is a test for file size 0 somewhere that is either altogether unnecessary or, more likely, does not take into account that for composite datatypes it might be completely legitimate for the primary file to be empty.
This guess makes sense - but I've not yet tried to trace through the code either.
Or is my primary blastdb file not supposed to be empty in the first place? I can blast against it just fine.
The BLAST databases do not define/populate a primary file, so Galaxy seems to create a dummy empty file on its own. I have wondered about altering the BLAST database datatype definition to have a human readable text file as the "primary file" (i.e. the information currently saved as a text log file when creating a database).
Correction: I actually implemented this late last year (included in BLAST+ wrapper version v0.0.22 onwards, and the Galaxy BLAST datatypes version v0.0.18 onwards):
https://github.com/peterjc/galaxy_blast/commit/9b3f65cddcc60de26de63272c362c... https://github.com/peterjc/galaxy_blast/commit/2ebfb790d5a1bbe310c3d7ccc2b95...
The makeblastdb wrapper will send the stdout (log information) to the dummy index file, see the end of the <command> tag in: https://github.com/peterjc/galaxy_blast/blob/master/tools/ncbi_blast_plus/nc...
The display_data method for a BLAST database will show any makeblastdb log information held in the dummy index file, see https://github.com/peterjc/galaxy_blast/blob/master/datatypes/blast_datatype...
i.e. Only older BLAST databases in histories should have empty dummy index files, which will mitigate the library problem: https://trello.com/c/bNEKfOWR
Peter