Bug#1009118: python3-biopython: incompatible with muscle >= 5

2022-11-24 Thread Étienne Mollier
Hi Andreas,

Andreas Tille, on 2022-11-24:
> Am Thu, Nov 24, 2022 at 10:28:43AM +0900 schrieb Charles Plessy:
> > I have read the Muscle5 paper and it is a totally different program than
> > Muscle3.
> > 
> > https://pubmed.ncbi.nlm.nih.gov/36379955/
> > 
> > Reintroducing muscle3 as a separate package might be useful not only to
> > Biopython, but also to the people who need it in pipelines, etc.
> 
> I've created a new git repository[1] and filed an ITP bug report.  Will
> upload to new soon.

Thanks for the upload, I further adjusted the muscle wrapper so
it would catch the muscle3 binary if it finds it in the path, as
I see your new package provides the executable /usr/bin/muscle3.
If no such executable is available, the default switches to
plain muscle.  In any case it is possible for a user of the
biopython wrapper to enforce a given executable name by setting
the cmd argument of the constructor.  Changes are available in
the muscle3 patch[2] on salsa.  I'm hopeful to upload biopython
1.80 to experimental this evening.

> [1] https://salsa.debian.org/med-team/muscle3 
[2]: 
https://salsa.debian.org/med-team/python-biopython/-/blob/master/debian/patches/muscle3.patch

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.
On air: Phideaux - Dormouse Escapes


signature.asc
Description: PGP signature


Bug#1009118: Bug#1009118: python3-biopython: incompatible with muscle >= 5

2022-11-24 Thread Andreas Tille
Hi Charles,

thank you for the hint.

Am Thu, Nov 24, 2022 at 10:28:43AM +0900 schrieb Charles Plessy:
> I have read the Muscle5 paper and it is a totally different program than
> Muscle3.
> 
> https://pubmed.ncbi.nlm.nih.gov/36379955/
> 
> Reintroducing muscle3 as a separate package might be useful not only to
> Biopython, but also to the people who need it in pipelines, etc.

I've created a new git repository[1] and filed an ITP bug report.  Will
upload to new soon.

Kind regards

  Andreas.

[1] https://salsa.debian.org/med-team/muscle3 

-- 
http://fam-tille.de



Bug#1009118: [Debian-med-packaging] Bug#1009118: python3-biopython: incompatible with muscle >= 5

2022-11-23 Thread Charles Plessy
Hello everybody,

I have read the Muscle5 paper and it is a totally different program than
Muscle3.

https://pubmed.ncbi.nlm.nih.gov/36379955/

Reintroducing muscle3 as a separate package might be useful not only to
Biopython, but also to the people who need it in pipelines, etc.

Have a nice day,

Charles



Bug#1009118: python3-biopython: incompatible with muscle >= 5

2022-11-23 Thread Étienne Mollier
Hi all,

Andrius Merkys, on 2022-10-17:
> On 2022-10-13 14:31, Andreas Tille wrote:
> > > On Thu, 7 Apr 2022 15:44:43 +0300 Andrius Merkys  
> > > wrote:
> > > > python3-biopython is incompatible with muscle >= 5.
> > > I tend to think this is serious-ish as biopython integration with muscle
> > > from Debian package will not work. Upstream has been notified [1] and 
> > > their
> > > response was to drop all wrappers at some point. However, it becomes clear
> > > that this point is beyond the bookworm's freeze (June 2022, to cite
> > > upstream), thus we are at risk of shipping a broken package.
> > > 
> > > What should we do?
> > > 
> > > B. Patch biopython to detect muscle >= 5 and throw an error?
> > > 
> > > C. Slap a warning (debian/NEWS) that biopython interface with muscle >=5 
> > > is
> > > broken and should only be used with local installations of muscle <5?
> > 
> > I think both B+C is a sensible way to simply set bug #1009118 wishlist
> > to give room for A anyway.
> 
> I agree this would make biopython fit to release in bookworm.

I implemented B by checking for "muscle 5" in --version output.
Attempt to make use of such muscle version with biopython would
end up with a RuntimeError, for example:

Traceback (most recent call last):
  File 
"/<>/.pybuild/cpython3_3.11/build/Tests/test_Muscle_tool.py", line 
197, in test_simple_msf
cmdline = MuscleCommandline(muscle_exe, input=input_file, msf=True)
  ^
  File 
"/<>/.pybuild/cpython3_3.11/build/Bio/Align/Applications/_Muscle.py",
 line 682, in __init__
raise RuntimeError("muscle 5 is unsupported in biopython")
RuntimeError: muscle 5 is unsupported in biopython

I also implemented C with the following NEWS item:

python-biopython (1.80+dfsg-1) experimental; urgency=medium

  Starting with biopython 1.79, command wrappers are being deprecated,
  and may be removed past biopython 1.81.  This has the notable
  implication that support of the muscle command past version 5 has
  never been implemented, and probably will never be[1,2].

  Users of muscle are invited either to use a generic command launcher
  such as the module "subprocess", or to stick to muscle 3.

  [1]: https://github.com/biopython/biopython/issues/3902
  [2]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1009118

 -- Étienne Mollier   Wed, 23 Nov 2022 23:19:22 +0100

I tried to keep messages succinct, but if you think this is too
terse, improvements are welcome.

Have a nice day,  :)
-- 
  .''`.  Étienne Mollier 
 : :' :  gpg: 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#1009118: python3-biopython: incompatible with muscle >= 5

2022-10-17 Thread Andrius Merkys

Hi Andreas,

On 2022-10-13 14:31, Andreas Tille wrote:

On Thu, 7 Apr 2022 15:44:43 +0300 Andrius Merkys  wrote:

python3-biopython is incompatible with muscle >= 5.

I tend to think this is serious-ish as biopython integration with muscle
from Debian package will not work. Upstream has been notified [1] and their
response was to drop all wrappers at some point. However, it becomes clear
that this point is beyond the bookworm's freeze (June 2022, to cite
upstream), thus we are at risk of shipping a broken package.

What should we do?

A. Patch biopython to work with muscle >= 5?


Well, I guess if it would be that simple upstream would have stepped in.
While it would be the optimal solution I'm afraid we will fail in this
(and I would love a lot if someone would prove me wrong here!)


Right, this is most likely too much work.


B. Patch biopython to detect muscle >= 5 and throw an error?

C. Slap a warning (debian/NEWS) that biopython interface with muscle >=5 is
broken and should only be used with local installations of muscle <5?


I think both B+C is a sensible way to simply set bug #1009118 wishlist
to give room for A anyway.


I agree this would make biopython fit to release in bookworm.


Or something else?


Maintaining a muscle4 package?  May be quite some users have scripts
adapted to muslce 4 and there might be some use for this as well?


This might work, if it is not too much effort to maintain both muscle 
versions in bookworm. I would prefer B+C for simplicity.


Best,
Andrius



Bug#1009118: python3-biopython: incompatible with muscle >= 5

2022-10-13 Thread Andrius Merkys

Hello,

Since the bookworm's freeze is getting closer, I would like to attract 
team's attention to bug #1009118 in biopython:


On Thu, 7 Apr 2022 15:44:43 +0300 Andrius Merkys  wrote:

python3-biopython is incompatible with muscle >= 5.
I tend to think this is serious-ish as biopython integration with muscle 
from Debian package will not work. Upstream has been notified [1] and 
their response was to drop all wrappers at some point. However, it 
becomes clear that this point is beyond the bookworm's freeze (June 
2022, to cite upstream), thus we are at risk of shipping a broken package.


What should we do?

A. Patch biopython to work with muscle >= 5?

B. Patch biopython to detect muscle >= 5 and throw an error?

C. Slap a warning (debian/NEWS) that biopython interface with muscle >=5 
is broken and should only be used with local installations of muscle <5?


Or something else?

[1] https://github.com/biopython/biopython/issues/3902

Best,
Andrius



Bug#1009118: python3-biopython: incompatible with muscle >= 5

2022-04-22 Thread Andrius Merkys
Control: tags -1 + wontfix

Hello,

The upstream has confirmed that command line wrappers are deprecated and
will most likely be removed before bookworm freeze. Thus there is no
need to patch this. I suggest keeping this issue open until bookworm
release as a reminder to check this before the release.

Andrius



Bug#1009118: python3-biopython: incompatible with muscle >= 5

2022-04-11 Thread Andrius Merkys
Hi Étienne,

On Sat, 9 Apr 2022 11:32:03 +0200 =?utf-8?Q?=C3=89tienne?= Mollier
 wrote:
> Control: tags -1 + confirmed
> Control: forwarded -1 https://github.com/biopython/biopython/issues/3902

Thanks for forwarding the issue upstream.

> There seems to be enough changes between the two versions that a
> rather extensive rewrite of the muscle wrapper might be needed.
> But I may miss easier approaches, we'll see what upstream will
> come up with.

If upstream wants to support both muscle 3 and muscle 5, then surely
yes. If only muscle 5 support is needed, maybe simple adjustments to
accommodate muscle's CLI changes would be enough. Nevertheless let us
wait for upstream response, there is quite some time before the bookworm
freeze.

Best,
Andrius



Bug#1009118: python3-biopython: incompatible with muscle >= 5

2022-04-07 Thread Andrius Merkys
Package: python3-biopython
Severity: important
Tags: upstream

Hello,

python3-biopython is incompatible with muscle >= 5. Upstream tests
detect this incompatibility:

==
ERROR: test_Muscle_profile_simple (test_Muscle_tool.MuscleApplication)
Simple round-trip through app doing a profile alignment.
--
Traceback (most recent call last):
  File
"/<>/.pybuild/cpython3_3.10/build/Tests/test_Muscle_tool.py",
line 133, in test_Muscle_profile_simple
output, error = cmdline()
  File
"/<>/.pybuild/cpython3_3.10/build/Bio/Application/__init__.py",
line 574, in __call__
raise ApplicationError(return_code, str(self), stdout_str, stderr_str)
Bio.Application.ApplicationError: Non-zero return code 1 from 'muscle
-out Fasta/temp_align_out3.fa -profile -in1 Fasta/fa01 -in2 Fasta/f001',
message 'Invalid command line'

(only one failing test is shown for brevity)

However, tests with muscle are skipped as the build system is unable to
detect newer muscle. I attach a patch prodding the build system to run
muscle tests. Normally I would push such patch to cause FTBFS for
package, but now I think failures of integration with muscle should not
cause AUTORM for Biopython. Nevertheless, I think this should be fixed
for bookworm.

Andrius--- a/Tests/test_Muscle_tool.py
+++ b/Tests/test_Muscle_tool.py
@@ -49,14 +49,13 @@
 if muscle_exe:
 break
 else:
-from subprocess import getoutput
+from subprocess import getstatusoutput
 
-output = getoutput("muscle -version")
+exitcode, _ = getstatusoutput("muscle -version")
 # Since "not found" may be in another language, try and be sure this is
 # really the MUSCLE tool's output
-if "not found" not in output and "not recognized" not in output:
-if "MUSCLE" in output and "Edgar" in output:
-muscle_exe = "muscle"
+if exitcode == 0:
+muscle_exe = "muscle"
 
 if not muscle_exe:
 raise MissingExternalDependencyError(