Bug#994714: ncbi-blast+: makeblastdb output dependent of endianness

2021-09-20 Thread Étienne Mollier
Hi Aaron,

Aaron M. Ucko, on 2021-09-19:
> As of BLAST+ 2.10.0, makeblastdb defaults to making version 5 databases,
> via the third-party LMDB library that uses an architecture-dependent
> on-disk layout (differing between little-endian and big-endian systems;
> I'm not sure offhand about 32-bit vs. 64-bit systems).  TTBOMK, BLAST+
> is fine on either type of system as long as you don't try to mix and
> match, so the bug is most likely in kleborate; please try directing
> makeblastdb to produce traditional version 4 databases by invoking it
> with the "-blastdb_version 4" flag.
> 
> See also
> 
> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=959587
> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=960756
> 
> and especially
> 
> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=981293

This is amazing!  I more or less followed these threads, and
even actively participated to one, but only now I am putting all
the pieces of the puzzle together.  Thanks for your explanation,
notably by insisting on lmdb outputing architecture dependent
data, bit which really cleared things up to me!  I see how to
address the situation on kleborate side.

> Thanks for checking!

You're welcome!  Thank you so much for your help on that issue!
Have a nice day,  :)
-- 
Étienne Mollier 
Fingerprint:  8f91 b227 c7d6 f2b1 948c  8236 793c f67e 8f0d 11da
Sent from /dev/pts/2, please excuse my verbosity.


signature.asc
Description: PGP signature


Bug#994714: ncbi-blast+: makeblastdb output dependent of endianness

2021-09-20 Thread Aaron M. Ucko
Étienne Mollier  writes:

> the pieces of the puzzle together.  Thanks for your explanation,

No problem; please feel free to ping me if there's anything else I can
clarify.

Also, sorry for the badly half-baked metadata update.

> Have a nice day,  :)

Thanks, you too!

-- 
Aaron M. Ucko, KB1CJC (amu at alum.mit.edu, ucko at debian.org)
http://www.mit.edu/~amu/ | http://stuff.mit.edu/cgi/finger/?a...@monk.mit.edu



Bug#994714: ncbi-blast+: makeblastdb output dependent of endianness

2021-09-19 Thread Aaron M. Ucko
Control: reassign 994714 kleborate/2.1.0-1

Étienne Mollier  writes:

> At this point, I strongly suspect that, either makeblastdb does
> not output properly blastdb files on big endian systems, or
> kleborate is not able to decode properly an eventual blastdb
> database with big endian specific layout.

Hi, Étienne.

As of BLAST+ 2.10.0, makeblastdb defaults to making version 5 databases,
via the third-party LMDB library that uses an architecture-dependent
on-disk layout (differing between little-endian and big-endian systems;
I'm not sure offhand about 32-bit vs. 64-bit systems).  TTBOMK, BLAST+
is fine on either type of system as long as you don't try to mix and
match, so the bug is most likely in kleborate; please try directing
makeblastdb to produce traditional version 4 databases by invoking it
with the "-blastdb_version 4" flag.

See also

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=959587
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=960756

and especially

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=981293

Thanks for checking!

-- 
Aaron M. Ucko, KB1CJC (amu at alum.mit.edu, ucko at debian.org)
http://www.mit.edu/~amu/ | http://stuff.mit.edu/cgi/finger/?a...@monk.mit.edu



Bug#994714: ncbi-blast+: makeblastdb output dependent of endianness

2021-09-19 Thread Étienne Mollier
Package: ncbi-blast+
Version: 2.11.0+ds-1
Severity: important

Hi Aaron,

I am currently investigating kleborate failure to migrate to
testing.  The failure is due to build time test suite failure on
s390x [1].

[1]: 
https://buildd.debian.org/status/fetch.php?pkg=kleborate=s390x=2.1.0-1=1629929420=0

A recurrent relevant error message in the log is stating errors
on .ndb files, such as:

BLAST Database error: Invalid db file : 
/<>/.pybuild/cpython3_3.9/build/test/test_res_alleles/data/CARD_v3.0.8.fasta.ndb

These files are produced at runtime by the execution of a
makeblastdb command within kleborate build time tests scripts.
Here is one of them:

$ makeblastdb -dbtype nucl -in test/test_res_aac/data/CARD_v3.0.8.fasta

The .fasta file used for producing these databases can be
obtained on Salsa [2].

[2]: 
https://salsa.debian.org/med-team/kleborate/-/raw/master/test/test_res_aac/data/CARD_v3.0.8.fasta

If I produce these ndb files on big endian, then I have the
following consistent md5sum on s390x and ppc64:

08bd786ca54ebc4730e5dd42b57c454f  CARD_v3.0.8.fasta.ndb

On amd64 or arm64, the md5sum is:

8437e0675ad22935790a272be888ff56  CARD_v3.0.8.fasta.ndb

At this point, I strongly suspect that, either makeblastdb does
not output properly blastdb files on big endian systems, or
kleborate is not able to decode properly an eventual blastdb
database with big endian specific layout.

To be honest, I don't know which program is at fault, but if it
is a problem on makeblastdb side, then I thought you would want
to be aware of it.  Otherwise I'm happy with a bug reassigning
(in which case, I suppose I would just skip those test, or ask
for removal from s390x architecture).

Have a nice day,  :)
-- 
Étienne Mollier 
Fingerprint:  8f91 b227 c7d6 f2b1 948c  8236 793c f67e 8f0d 11da
Sent from /dev/pts/9, please excuse my verbosity.


signature.asc
Description: PGP signature