Closed mathog closed 3 years ago
Thanks. You can ignore the compiler warning, which appears to be a false positive from gcc 8.3.0 with OpenMPI, not a problem in our code. I've reproduced the warning here, and just checked in a fix that silences the warning. The fix will appear in our next release.
I also removed the references to makeblastdb
and ncbi
format files in nhmmer.man
. We have been unable to support NCBI binary press'ed databases for quite some time; their format is undocumented, last time I checked.
Thanks.
I have asked the NCBI before for v5 documentation and they could never provide a link to any. V5 is documented in some sense by the toolbox code I suppose. For V4 there was actually documentation, and I once wrote my own access code using it. That software and documentation is here:
https://saf.bio.caltech.edu/pub/software/molbio/blastdb_api.tar.gz
At the time the bdb_tool program it provides was about twice as fast as the NCBI's fastacmd at dumping fasta from an NCBI database. However my code is now quite old and does not handle v5 at all or v4 once it grows past certain 32 bit limits. I was thinking about updating it to handle the bigger v4 datasets but then found out there are entries in "nt" now which trigger fatal errors when trying to makeblastdb with parse to a v4 database, even using the current toolbox, that is:
Multi-letters chain PDB id is not supported in v4 BLAST DB
So while the current blast variants all work with v4 or v5, there isn't actually a supported way to make certain v4 databases!
Yeah, we just don't have the bandwidth to be able to track NCBI's various formats right now.
On CentOS 8 with gcc 8.3.1 there is a compiler warning during the build:
which is:
The line which triggers this is:
ESL_ALLOC(info, sizeof(*info) * infocnt);
But info seems to be an array pointer for data of type WORKER_INFO, so this dereferences it and would be I guess equivalent to just sizeof(WORKER_INFO). However, making that change still does not suppress the warning. This
ESL_ALLOC(info, (int)sizeof(WORKER_INFO) * infocnt);
compiles cleanly and in the resulting programs everything passes "make check".On an unrelated point, does 3.3.2 have support for NCBI v4 or v5 databases? This was unsupported in 3.2.1 and I'm curious if that has changed. (Documentation still references makeblastdb in nhmmer.man, nhmmer.man.in, and x-psiblast+)