Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

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

72 views
Skip to first unread message

Andrius Merkys

unread,
Apr 7, 2022, 8:50:03 AM4/7/22
to
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
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10/build/Tests/test_Muscle_tool.py",
line 133, in test_Muscle_profile_simple
output, error = cmdline()
File
"/<<PKGBUILDDIR>>/.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
muscle5.patch

Étienne Mollier

unread,
Apr 9, 2022, 6:00:03 AM4/9/22
to
Control: tags -1 + confirmed
Control: forwarded -1 https://github.com/biopython/biopython/issues/3902

Hi Andrius,

Andrius Merkys, on 2022-04-07:
> python3-biopython is incompatible with muscle >= 5.

Thanks for the notice, I informed upstream of the issue.

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.

Have a nice day, :)
--
Étienne Mollier <emol...@emlwks999.eu>
Fingerprint: 8f91 b227 c7d6 f2b1 948c 8236 793c f67e 8f0d 11da
Sent from /dev/pts/2, please excuse my verbosity.
On air: Protest The Hero - Caravan (Instrumental Version)
signature.asc

Andrius Merkys

unread,
Apr 12, 2022, 1:40:03 AM4/12/22
to
Hi Étienne,

On Sat, 9 Apr 2022 11:32:03 +0200 =?utf-8?Q?=C3=89tienne?= Mollier
<emol...@emlwks999.eu> 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

Andrius Merkys

unread,
Apr 22, 2022, 10:30:03 AM4/22/22
to
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

Étienne Mollier

unread,
Apr 22, 2022, 3:50:03 PM4/22/22
to
Hi Andrius,

Andrius Merkys, on 2022-04-22:
> 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.

I agree. Let's close only once wrappers are effectively not
available anymore.

Forwarding the word from upstream, the solution is to make use
of the "subprocess" python3 module instead:
> Quoting https://github.com/biopython/biopython/blob/master/DEPRECATED.rst
>> *Bio.Application and the command line wrappers using it*
>> Declared obsolete in release 1.79. Please use the standard
>> library subprocess module directly instead.

Have a good evening, :)
--
Étienne Mollier <emol...@emlwks999.eu>
Fingerprint: 8f91 b227 c7d6 f2b1 948c 8236 793c f67e 8f0d 11da
Sent from /dev/pts/2, please excuse my verbosity.
On air: Big Big Train - all the love we can give
signature.asc

Andrius Merkys

unread,
Oct 13, 2022, 5:20:04 AM10/13/22
to
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 <mer...@debian.org> 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

Andrius Merkys

unread,
Oct 17, 2022, 3:40:04 AM10/17/22
to
Hi Andreas,

On 2022-10-13 14:31, Andreas Tille wrote:
>> On Thu, 7 Apr 2022 15:44:43 +0300 Andrius Merkys <mer...@debian.org> 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

Étienne Mollier

unread,
Nov 23, 2022, 6:10:04 PM11/23/22
to
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 <mer...@debian.org> 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 "/<<PKGBUILDDIR>>/.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 "/<<PKGBUILDDIR>>/.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 <emol...@debian.org> 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 <emol...@debian.org>
: :' : gpg: 8f91 b227 c7d6 f2b1 948c 8236 793c f67e 8f0d 11da
`. `' sent from /dev/pts/2, please excuse my verbosity
`-
signature.asc

Charles Plessy

unread,
Nov 23, 2022, 8:50:04 PM11/23/22
to
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

Andreas Tille

unread,
Nov 24, 2022, 3:50:03 AM11/24/22
to
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

Étienne Mollier

unread,
Nov 24, 2022, 1:11:20 PM11/24/22
to
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 <emol...@emlwks999.eu>
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
0 new messages